Как объединить таблицы в EF LINQ - PullRequest
12 голосов
/ 25 февраля 2011

Когда я пытаюсь присоединиться к таблицам

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 Ответ

24 голосов
/ 25 февраля 2011

Попробуйте вместо этого:

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

В любом случае, я предлагаю вам смоделировать отношение между Foo и Bar в конструкторе EDM, так что вам не нужно явное соединение:

var query =
    from foo in db.Foos
    where foo.ID == 45
    from bar in foo.Bars
    select bar;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...