Я знаю, что теперь мы можем (из EF5?) Использовать
var employees = Db.Employees.Include("Details").Include("Details.DetailsType"))
вместо
var employees = Db.Employees.Include(x => x.Details).Include(x => x.Details.Select(y => y.DetailsType))
С помощью Debug запросы кажутся точно такими же, поэтому я задавался вопросом о нескольких вопросах:
Спасибо за ваши ответы;)
В чем разница между этими двумя обычаями?
Один использует строку, а другой нет. SO не бросает ошибку компиляции, если свойство переименовано, а другое -.
Есть ли разница в производительности между этими двумя линиями?
Строка немного быстрее, IIRC. Меньше рефлекторных поисков, чтобы найти то, что имеется в виду. Я думаю, что вторая форма динамически получает строку.
Какова наилучшая практика, которую я должен использовать в соответствии с какой ситуацией?
Всегда нестроковая версия из-за различий, описанных в первой части, - если вы переименуете это свойство, то это можно автоматически исправить и найти, но это не так в строковой форме.
Совершенно очевидно, когда вы об этом думаете. А также - ах - задокументированы.