如何在EF LINQ中连接表

时间:2011-02-25 00:15:20

标签: linq join entity-framework-ctp5

当我尝试加入表格时

var query =
    from foo in db.Foos
    from bar in db.Bars
    where foo.ID == bar.FooID
    where foo.ID == 45
    select bar;


query.toArray()

我收到了这样的错误

Unable to create a constant value of type 'Bar'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.

1 个答案:

答案 0 :(得分:24)

请尝试改为:

var query =
    from foo in db.Foos
    join bar in db.Bars on foo.ID equals bar.FooID
    where foo.ID == 45
    select bar;

无论如何,我建议你在EDM设计师中模拟Foo和Bar之间的关系,这样你就不需要显式连接了:

var query =
    from foo in db.Foos
    where foo.ID == 45
    from bar in foo.Bars
    select bar;