我是Entity Framework和LINQ的新手,并且遇到了一个相当奇怪的场景.
我一直在使用以下查询来返回帐户信息:
var account = ((from acct in _entities.Account
join m in _entities.Item on acct.Id equals m.Account.Id
where acct.Id == accountId && m.ItemNumber.EndsWith(itemNumber)
select acct) as ObjectQuery<Account>).Include("Item.ItemDetails");
我们最近对数据库进行了一些更改并生成了一个新的edmx文件.在更改之后,上面的查询仍然返回帐户和关联的项目,但不再包含ItemDetails.
我已经验证了查询返回的SQL,并且由于返回了正确的数据,似乎没有任何错误.
此外,我没有在Item和ItemDetails对象之间的edmx文件中看到不同的anthing,因为它们没有被更改,导航属性就在那里.
谁看过这个吗?
谢谢
最佳答案 在Include(…)中使用了导航属性的名称,因此最好从.edmx中检查属性的确切名称(特别是如果它是单数或复数).
您也可以尝试更改此查询:
var account = from acct in _entities.Account.Include("Item.ItemDetails")
join m in _entities.Item
on acct.Id equals m.Account.Id
where acct.Id == accountId && m.ItemNumber.EndsWith(itemNumber)
select acct;