我有3个类A类,B类和C类,结构如下
public class A
{
//other properties
public List<B> Bs{get;set;}
public List<C> Cs{get;set;}
}
public class B
{
//other properties
public List<C> Cs{get;set;}
}
public class C
{
//properties
}
如您所见,C类嵌套在A和B中。
数据库中的数据存储在 Cs表格为
Id | AId | BId
---------------
1 | 10 | NULL
2 | 20 | NULL
3 | 40 | 100
我想从A类中排除Bid = NULL但在B类中包含的ID。
这是我试过的
var A=db.A
.include(i=>i.B.Select(j=>j.C))
.include(i=>i.C)
.FirstOrDefault();
我按预期获得所有数据,但不能从A中排除Bid = Null的数据。请建议。
答案 0 :(得分:0)
如果匿名结果没问题,您可以执行以下操作:
var A= from a in db.A
select new {
A = a,
B = a.B,
C = a.C.Where(c => c.BId != null)
}.ToList();
其他类似的事情:
var A = db.A.Include(a => a.B).Single();
var children = db.C.Where(c => c.ParentID == parent.Id && c.BId != null);
foreach (var child in children) {
A.C.Add(child);
}