我想使用我的LINQ到SQL查询之一的编译查询。该查询包含5到6个连接。我能够创建编译查询,但我面临的问题是我的查询需要检查密钥是否在作为输入传递的密钥集合中。但编译查询不允许传递集合(因为集合可能有不同数量的项目因此不允许)。LINQ到SQL编译查询帮助
例如
输入到功能是键的集合。你说:List<Guid> InputKeys
List<SomeClass> output = null;
var compiledQuery = CompiledQuery.Compile<DataContext, List<Guid>, IQueryable<SomeClass>>(
(context, inputKeys) => from a in context.GetTable<A>()
where inputKeys.Contains(a.Key)
select a);
using(var dataContext = new DataContext())
{
output = compiledQuery(dataContext, InputKeys).ToList();
}
return output;
上面的查询没有编译,因为它正在采取列表作为一个输入。是否有任何解决方法或更好的方式来做到上述?
你可以使用常规查询而不是编译的吗? – Gabe 2011-02-09 07:44:25