我正在尝试找到一种方法来实现以下形式的 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.Compile 上述失败。我正在尝试找到一些巧妙的方法来将逗号分隔的整数列表作为字符串传递,并在 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)
));
但由于不支持拆分功能,这不起作用。
关于如何实施的任何聪明的想法?