我想使用我的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