我一直在搜索但没有成功(或不知道如何正确搜索)所以我来找你。
查看这些测试类:
public class A {
int Id;
ICollection<B> Bs;
}
public class B {
int Id;
int AId;
ICollection<C> Cs;
}
public class C {
int Id;
int BId;
ICollection<D> D;
}
public class D {
int Id;
int CId;
bool Show;
}
我想要做的是使用急切加载在 1 次调用中获取所有这些类(确保数据库只被调用一次)。
下面是TSQL
我要转换为LINQ Method
语法的实际内容(我认为是正确的术语)而不是LINQ Query
语法。
SELECT *
FROM A
LEFT JOIN B ON B.AId = A.Id
LEFT JOIN C ON C.BId = B.Id
LEFT JOIN D ON D.CId = C.Id
WHERE A.Id = 1
这是我到目前为止所得到的
var x = db.A
.Include(a => a.B)
.Include(a => a.Bs.Select(b => b.C)
// How do I get D?
.FirstOrDefault(a => a.Id == 1);
虽然我不认为这很重要,但我想指出,以防万一,最后,我需要做一些事情A
,然后,我需要得到所有D
的有Show == true
。