Ada*_*uer 5 .net c# linq-to-sql
好的,我需要在这里进行健全检查......
我编译了一个在执行时返回IQueryable的查询.
在以下示例中,查询实际应对数据库执行哪些行?
101 IQueryable<T> results = MyCompiledQuery(MyDataContext);
102 List<T> final = (from t in result
103 where t.ID > 5
104 select t).ToList<T>();
Run Code Online (Sandbox Code Playgroud)
这是我如何定义编译的查询
public static Func<MyDataContext, IQueryable<Widget>> MyCompiledQuery=
CompiledQuery.Compile<MyDataContext, IQueryable<Widget>>(
(MyDataContext db) =>
from w in db.Widgets
where ((w.Type == WidgetType.Atype || //Widget.Atype is a Linq to Sql object, that I've defined statically
w.Type == WidgetType.Btype || //See above comment
w.Type == WidgetType.Ctype ) && //See above comment
w.Location == WidgetLocation.Domestic) //Samething applies here
select euc);
Run Code Online (Sandbox Code Playgroud)
有关其他讨论,请参阅: LINQ to SQL 编译查询以及何时执行
“在第 104 行,进行 ToList 转换时。”
嗯,这个答案是不正确的。我们调用第 101 行 MyCompiledQuery 变量中存储的委托,该委托返回编译查询的结果,而不是查询本身。