我已經在實體框架中編寫了下面的查詢,並且這些值是不同的。爲什麼這兩個查詢在實體框架中返回不同的結果?
var query = from p in db.Parents
let children = p.Children
let grandchildren = children.SelectMany(c => c.Grandchildren)
select new
{
Count1 = children.Count(c => !c.Grandchildren.Any()),
Count2 = children.Count(c => !grandchildren.Any())
};
的共1個記錄屬性返回我的期望,共2個記錄沒有。
我想返回沒有任何孫子對象的孩子的數量。共2個記錄似乎在這種情況下返回0,但共1個記錄與以下數據集返回1:
父母
Id
------
1
兒童
Id ParentId
--------------
1 1
2 1
孫子
Id ChildId
-------------
1 1
我有兩個孩子,其中只有一個有孩子。爲什麼第二個查詢不像我認爲的那樣工作?
我的目標如下:
public class Parent {
public int Id { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
public class Child {
public int Id { get; set; }
public int ParentId { get; set; }
public virtual ICollection<Grandchild> Grandchildren { get; set; }
}
public class Grandchild {
public int Id { get; set; }
public int ChildId { get; set; }
}
so!!grandChildren.Any()將始終返回0 – naspinski 2012-03-16 17:05:02