Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to join tables in EF LINQ

When I try to join tables

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()

I get such error

Unable to create a constant value of type 'Bar'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
like image 679
alex2k8 Avatar asked Feb 25 '11 00:02

alex2k8


1 Answers

Try that instead:

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

Anyway, I suggest you model the relation between Foo and Bar in the EDM designer, this way you don't need an explicit join:

var query =
    from foo in db.Foos
    where foo.ID == 45
    from bar in foo.Bars
    select bar;
like image 110
Thomas Levesque Avatar answered Oct 18 '22 23:10

Thomas Levesque