使用linq使用“外部联接”填充嵌套类

时间:2011-08-24 07:09:02

标签: c# linq entity-framework

我正在尝试使用Linq的EF数据来填充A类(抱歉命名错误)。

获得这些课程:

public class A
{
    public string SomeA { get; set; }
    public B B { get; set; }
    public List<C> C { get; set; }
}

public class B
{
    public string SomeB { get; set; }
    public string SomeB2 { get; set; }
}

public class C
{
    public string SomeC { get; set; }
    public string SomeC2 { get; set; }
}

我的SQL查询获取所需的所有信息如下:

SELECT * FROM A
    JOIN B ON A.X = B.X
    LEFT JOIN C ON C.X = B.X

linq查询如何填充A?

List<A> things = ......

提前致谢

/拉塞

1 个答案:

答案 0 :(得分:4)

比你想象的容易:

List<A> things = (
    from thing in db.As
    where thing.B.C != null
    select thing)
    .ToList();

注意:为此,您的EF模型必须了解BC之间存在FK关系。在这种情况下(通常是FK在数据库中并且您直接从数据库定义生成模型时),EF将在C上生成B属性(反之亦然)。