Linq to sql 已编译查询和";参数不能为“序列”;
我认为编译后的查询将执行与DataContext相同的查询转换。然而,当我尝试使用带有.Contains方法调用的查询时,我遇到了一个运行时错误。我哪里出错了Linq to sql 已编译查询和";参数不能为“序列”;,linq-to-sql,contains,linq.compiledquery,Linq To Sql,Contains,Linq.compiledquery,我认为编译后的查询将执行与DataContext相同的查询转换。然而,当我尝试使用带有.Contains方法调用的查询时,我遇到了一个运行时错误。我哪里出错了 //private member which holds a compiled query. Func<DataAccess.DataClasses1DataContext, List<int>, List<DataAccess.TestRecord>> compiledFiftyRecordQue
//private member which holds a compiled query.
Func<DataAccess.DataClasses1DataContext, List<int>, List<DataAccess.TestRecord>>
compiledFiftyRecordQuery = System.Data.Linq.CompiledQuery.Compile
<DataAccess.DataClasses1DataContext, List<int>, List<DataAccess.TestRecord>>
((dc, ids) => dc.TestRecords.Where(tr => ids.Contains(tr.ID)).ToList());
//this method calls the compiled query.
public void FiftyRecordCompiledQueryByID()
{
List<int> IDs = GetRandomInts(50);
//System.NotSupportedException
//{"Parameters cannot be sequences."}
List<DataAccess.TestRecord> results = compiledFiftyRecordQuery
(myContext, IDs);
}
//保存已编译查询的私有成员。
Func
compiledFiftyRecordQuery=System.Data.Linq.CompiledQuery.Compiled
((dc,ID)=>dc.TestRecords.Where(tr=>ids.Contains(tr.ID)).ToList());
//此方法调用已编译的查询。
public void FiftyRecordCompiledQueryByID()
{
列表ID=GetRandomInts(50);
//System.NotSupportedException
//{“参数不能是序列。”}
列表结果=compiledFiftyRecordQuery
(myContext,IDs);
}
有你的答案:
不能删除具有列表参数的查询
已预编译,因为
查询取决于号码
列表中项目的名称