Какие-либо идеи о том, что проблема может быть здесь в запросе EF DbContext? Насколько я понял, это должно работать согласно fellow SO poster.Неожиданный - Нельзя сравнивать элементы типа 'System.Int32 []'. Поддерживаются только примитивные типы, типы перечисления и типы сущностей.
Я пробовал списки, null, а не нулевые проверки, но безрезультатно. Запрос действительно работает, если я удалю нулевую проверку и просто оставьте Contains()
. Тем не менее, это требование, чтобы вернуть все записи, если testIDs является нулевым.
var testIDs = new int[] { 1, 3 };
var test = session.All<VendorBooking>(x => testIDs == null || testIDs.Contains(x.VendorServiceID)).ToList();
(session.All просто использует context.Set<T>.Where()
)
Исключение брошено: 'System.NotSupportedException' в EntityFramework.SqlServer.dll
Дополнительная информация: Невозможно сравнить элементы типа ' System.Int32 []. Поддерживаются только примитивные типы, типы перечисления и объекты .
Большое спасибо
какая версия EF и .net вы используете? – Backs
EntityFramework v6.1.3 (последний AFAIK), .NET 4.5.1 – GONeale