Linq2Sql объединяются несколькими столбцами (оператором OR)?

Моу я могу перевести это:

SELECT * 
FROM vectors as v
INNER JOIN points as p 
ON v.beginId = p.id OR v.endId = p.id

В linq2sql заявление? В основном я хочу это:

var query = from v in dc.vectors
            join p in dc.points on p.id in (v.beginId, v.endId)
            ...
            select ...;

Я знаю, я могу сделать это грязным через строительство Союза, но есть ли лучший способ, чем дублирование большей части запроса?

c#,linq,linq-to-sql,

1

Ответов: 1


2 принят

Вы не можете иметь onпредложение в linq-to-sql с or. Вам нужно сделать:

var result = from v in dc.vectors
             from p in dc.points
             where p.id == v.beginId || p.id == v.endId
             select new { v, p };

Эквивалентно sql:

SELECT * 
FROM vectors as v,
     points as p 
WHERE v.beginId = p.id 
OR v.endId = p.id
C #, LINQ, LINQ к SQL,
Похожие вопросы
Яндекс.Метрика