Я пытаюсь найти способ реализовать скомпилированный запрос Linq-to-Entities в форме:
Func<MyEntities, List<int>, IQueryable<MyClass>> query = System.Data.Objects.CompiledQuery.Compile(
(MyEntities entities, List<int> IDs) => (
(from au in entities.Mine where IDs.Any(x => x == au.ID) select au)
));
Поскольку только переданные скалярные параметры могут быть переданы в CompiledQuery. Скомпилировать вышеописанное не удается.Я пытаюсь найти какой-нибудь умный способ передать список целых чисел через запятую в виде строки и использовать его в запросе L2E по строкам:
Func<MyEntities, string, IQueryable<MyClass>> query = System.Data.Objects.CompiledQuery.Compile(
(MyEntities entities, string IDs) => (
(from au in entities.Mine where IDs.Split(',').Any(x => Convert.ToInt32(x) == au.ID) select au)
));
Но это не работает из-заНеподдерживаемая функция Split.
Какие-нибудь умные идеи о том, как это можно реализовать?