Вы не можете иметь 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