Я искал ответ на этот вопрос в течение нескольких дней, но безрезультатно.
Вот сценарий: мне нужно запросить базу данных DB2, используя
WHERE COLUMN IN (101,102,103...)
Итак, естественно, я пытаюсь
var myIdList = new List<long>{101,102,103};
context.Model.Where(r => myIdList.Contains(r.Id))
, как вы обычно ожидаете перевести на
SELECT COLUMNS FROM TABLE WHERE COLUMN IN (101,102,103...)
но неее. Конечно нет, это было бы слишком легко, верно? Эта штука взлетает до небес, за исключением:
System.InvalidOperationException: Невозможно найти сопоставление с реляционным типом для типа CLR 'List' ...
Я не публиковал какой-либо код, потому что он настолько прост, насколько это возможно. Просто класс c, где / содержит взрыва
Я использую самый последний и "самый лучший" драйвер IBM DB2 (1.3.0.100) для . NET Core с IBM.EntityFrameworkCore , та же версия, вместе с EF Core 2.2.6 . Решение: . NET Core 2.2 с DAL . NET Standard 2.0 .
Звучит ли эта проблема кому-нибудь знакомо? Что мне здесь не хватает?