#linq #linq-to-entities #linq-to-objects
#linq #linq-to-entities #linq-to-objects
Вопрос:
Я новичок в Linq, и я видел, что если существует несколько сущностей, некоторые используют синтаксис multiple FROM, подобный этому:
from h in db.Hubs
from ch in h.CityHubs where ch.Cities.CityID == 1
select
а некоторые используют синтаксис explicity join.
from h in db.Hubs
join ch in da.CityHubs on h.CityId equals ch.CityId
select
Если я использую Linq to entities, какой из них мне следует использовать? Если бы я должен был использовать Linq для объектов, какой из них мне следует использовать?
Ответ №1:
Как правило, в Entity Framework, если у вас есть правильная модель и правильно настроены свойства навигации для внешних ключей, вы почти никогда не должны использовать join
— вместо этого вы получаете доступ к своему навигационному свойству напрямую, и EF сгенерирует необходимое join
для вас в коде SQL. Я рекомендую взглянуть на пост в блоге @Craig Stuntz, посвященный этой проблеме. Однако, что касается Linq-to-objects, это зависит от конкретного запроса, который вы пишете.