У вас есть один из двух возможных сценариев:
Item
имеет отношение к Account
(выражается в вашей Entity Model как EntityAssociation и в DB в качестве внешнего ключа):
Нет никакой связи между Item
set и Account
set, поэтому вы должны указать соединение в LINQ, как вы это сделали.
Случай 1: если это так, то вам не нужен оператор соединения ... выбрав Acount.Item
, вы получите все элементы, где Item.AccountID
равен Account.ID
Итак, ваше заявление о присоединении: join m in _entities.Item on acct.Id equals m.Account.Id
в основном сказал Item
вернуться на Account
, чтобы проверить ID. Если бы они еще не были подключены, то вы не могли бы получить m.Account.ID
Случай 2. Если между Account
и Item
нет никакой связи, то .Include()
определенно не будет работать, поскольку навигационное свойство НЕ существует в вашей модели.
Вывод: проверьте вашу новую модель, чтобы увидеть, существует ли связь между Account
и Item
. Если да, то удалите Регистрация. Если нет отношений, значит, вы сделали что-то не так.
Вот оператор выбора, предполагающий сценарий 1 и который Account.Item
не является коллекцией:
var account = from acct in _entities.Account.Include("Item.ItemDetails")
where acct.Id == accountId && acct.Item.ItemNumber.EndsWith(itemNumber)
select acct;