Использование оператора «И» в linq - PullRequest
0 голосов
/ 06 декабря 2011

Я пытаюсь сделать выражение примерно так:

from a in objcxt.tableA
join b in objcxt.tableB
on a.fld1 equals b.fld1 and a.fld2 equals b.fld2
into b_join from b in b_join.DefaultIfEmpty()

edit: b.fld2 может быть нулевым.

Я пробовал "и", "&&", но безуспешно.

Некоторая помощь?

Ответы [ 3 ]

3 голосов
/ 06 декабря 2011

Необходимо написать его для работы с оператором равно , который можно использовать только один раз после оператора для Итак, что-то вроде этого необходимо.

from a in objcxt.tableA
join b in objcxt.tableB
on new { a.fld1, a.fld2 } equals new { b.fld1, b.fld2 }
into b_join from b in b_join.DefaultIfEmpty()
2 голосов
/ 06 декабря 2011

Вам нужно использовать анонимный тип в вашем объединении, чтобы указать несколько полей в объединении.

on new {a.fld1, a.fld2} equals new {b.fld1, b.fld2}
1 голос
/ 06 декабря 2011

Вы можете попробовать:

from a in objcxt.tableA
join b in objcxt.tableB
on
    new { a.fld1, a.fld2 }
equals
    new { b.fld1, b.fld2 }
into b_join from b in b_join.DefaultIfEmpty()
...