Я пытаюсь выполнить запрос внешнего соединения LINQ, который принимает две коллекции, объединяет их и идентифицирует потерянные записи. Однако я получаю исключение компиляции:
Дерево выражения не может содержать вызов или вызов, который использует необязательные аргументы
var query = from a in mongoCollectionA.AsQueryable()
.Where (a => a.column1 == "System1" && a.column2== "20200630"
from b in mongoCollectionB.AsQueryable() // the error is here
.Where(b => b.column1== a.column1 && b.column2 == a.column2)
.DefaultIfEmpty()
select new
{
a.column2,
a.column2
};
Я пробовал с " join ", но возникает другое исключение:
from a in mongoCollectionA.AsQueryable()
.Where (a => a.column1 == "System1" && a.column2 == "20200630"
join b in mongoCollectionB.AsQueryable()
on new { a.column1, a.column2} equals new { b.Column1, b.Column2} into joinedCol
from j in joinedCol.DefaultIfEmpty()
select new
{
a.column1,
a.column2
};
Невозможно определить информацию о сериализации для селектора внешнего ключа в дереве: aggregate ([]). Где (a => ((( a.column1 == "System1") AndAlso (a.column2 == "20200630"))). GroupJoin (агрегат ([]) ...