我正在努力使用db应用程序,我需要获取不同的值。整个结构看起来有点像这样
class A
{
public virtual ICollection<B> Bs { get; set; }
}
class B
{
public virtual C C { get; set; }
}
class C
{
public int x {get; set;}
}
这是来自db的模型,我有一个所有A's
的子集。现在,我需要从所有distinct
中获取所有C.x
个值A's
。
所以基本上像
db.A.Where(something).SelectMany(s => s.Bs.SelectMany(t => t.C.x).ToList().Distinct()).ToList()
但是它告诉我,第二个SelectMany
不能从用法中推断出来。
答案 0 :(得分:1)
修复你的代码:
SelectMany(s => s.Bs.Select(t => t.C.x)
请注意,B
不是A
的成员,而是Bs
的成员,而您的第二个SelectMany
也应该是Select
。
答案 1 :(得分:1)
.Include
语句:
db.A.Where(something)/*.Include(a => a.Bs.Select(b => b.C))*/
.SelectMany(x => x.Bs.Select(b => b.C.x)).Distinct();