Мне нужно сравнить два типа List
на основе значений столбцов Id
и Name
.List1
имеет names
и ids
, а List2
также содержит Id
, Name
и другие столбцы.Теперь я хочу проверить условие, которое одно входное Имя получает в методе.Это Имя не существует в List2
, но может существовать в List1
. Условие должно подтвердить, что List1 Id
не существует в List2 Id
, а внешнее Имя может существовать в List1.Я использовал ниже запрос для достижения этой цели.
var IsNameExists= db.List1.Where(a => List2.Any(b=>b.Id!=a.Id) && a.Name== InputName).ToList();
Когда я использую этот запрос, я получаю исключение, например
Невозможно создать постоянное значение типа 'ProjectName.DBEntities.List2'.В этом контексте поддерживаются только примитивные типы или типы перечисления.
Я не уверен, что я сделал неправильно в своем запросе.Пожалуйста, подскажите, как мне это сделать, чтобы проверить существование Имени в Списке 1.
Исправленный запрос и ответ:
var IsNameExists= db.List1.ToList().Where(a => !(List2.Select(x => x.Id).Contains(a.Id) && a.Name== InputName).ToList();