实体框架ThenInclude不包含孙代的任何属性。当我尝试访问“ GrandChild”的属性“ Total”时,出现错误“ CS1061'ICollection'不包含'Total'的定义,并且没有可访问的扩展方法'Total'”。智能感知根本不适用于“ GrandChild”。它与“孩子”一起工作正常,但与“大孩子”一起工作并非如此。当我从邮递员发出请求时,我可以看到Entity包括“ GrandChild”,并且它肯定具有“ Total”属性(以及所有其他属性)。
var products = dbf.Products
.Include(a=>a.Child)
.ThenInclude(b => b.GrandChild)
.Where(c => c.ProId >72200);
foreach(var p in products)
{
p.Child.GrandChild.Total// I get error here
}
答案 0 :(得分:0)
尝试此操作以访问GrandChild的全部属性:
var totals = p.Child.GrandChild.Select(gc=> gc.Total);
但是,如果您想获得孙子总数(孙子数),则应尝试以下操作:
var count = p.Child.GrandChild.Count();
答案 1 :(得分:0)
错误很明显,还是?
GrandChild是一个ICollection(我们可以查看是否提供相关的类定义)。 ICollection上没有Total函数。期。从来不是。这根本不是Entity Framewor的问题-您基本上假设,那么ThenInclude将神奇地在ICollection上提供适当的合计。
鉴于Total要求知道如何添加,并且除非集合中的元素是根本不可能的任何类型的标量,否则这应该如何工作。
使用逻辑来计算总数。