C#LINQ到实体。计数

C#LINQ到实体。计数,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,我不熟悉实体框架。我试图从LINQ查询中获取一个计数,该查询应返回1个结果。但计数始终为0。我知道数据在那里,edmx中的关系很好 代码如下: LineItem li = order.LineItems.Where(i => i.ID == lineItemId).FirstOrDefault(); if (li != null) { if (li.Notes.Count > 0) { // Get note data } } LineItem li=or

我不熟悉实体框架。我试图从LINQ查询中获取一个计数,该查询应返回1个结果。但计数始终为0。我知道数据在那里,edmx中的关系很好

代码如下:

LineItem li = order.LineItems.Where(i => i.ID == lineItemId).FirstOrDefault(); if (li != null) { if (li.Notes.Count > 0) { // Get note data } } LineItem li=order.LineItems.Where(i=>i.ID==lineItemId.FirstOrDefault(); 如果(li!=null) { 如果(li.Notes.Count>0) { //获取便笺数据 } } 现在ListItem不是空的,所以我可以进入count调用。我再次验证了我的数据作为调试网络。其中匹配为“52635==52635”

为了数到我的人数,这里有什么东西我遗漏了吗?或者,对于如何进一步调试此问题,是否有任何建议

我使用的是实体框架4+


谢谢

确保您
包含
注释。

+1关于包含注释。完成此操作后,应使用效率更高的
if(li.Notes.Any())
代替
if(li.Notes.Count()>0)


此外,您可能会发现,使用Notes使用的集合类型属性
li.Notes.Count
与Linq扩展方法
li.Notes.Count()
的工作方式不同。如果不检查您是否需要包含,我就无法确信。

我发现这是数据库中的记录被删除的问题。对不起,伙计们!谢谢你的帮助

您是否已进入调试器并在调用Count时检查了li.Notes?我怀疑问题就在那里,而不是count属性。显示检索
订单的代码
,问题可能就在那里(正如@Danielawite的回答所暗示的)。如果我能够通过导航属性访问我的笔记,我是否需要。包括?该关系存在,当我尝试使用.Include.Notes时出错,除非您指定它,否则不会加载它。请确定实体名称:是“Notes”还是“LineItemNotes”,谢谢。当我尝试这样做时:LineItem li=order.LineItems.Include(“LineItemNotes”)。其中(I=>I.ID==lineItemId)。FirstOrDefault();我得到:CS0122:“System.Data.Objects.DataClasses.RelatedEnd.Include(bool,bool)”由于其保护级别而无法访问