相关疑难解决方法(0)

LINQ to SQL*编译*查询以及何时执行

我有以下编译查询.

private static Func<Db, int, IQueryable<Item>> func =
        CompiledQuery.Compile((Db db, int id) => 
            from i in db.Items
            where i.ID == id
            select i
            );
Run Code Online (Sandbox Code Playgroud)

当我这样做时,它立即在数据库上执行

var db = new Db()
var query = func(db, 5);  // Query hits the database here
Run Code Online (Sandbox Code Playgroud)

就像在做之前一样

var result = query.SingleOrDefault(); // Happens in memory
Run Code Online (Sandbox Code Playgroud)

但是如果没有编译这个查询,就像在

var query = from i in db.Items
            where i.ID == id
            select i
Run Code Online (Sandbox Code Playgroud)

然后它在完成在数据库上执行

   var result = query.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

注意:这是返回IQueryable执行的编译查询何时重复,但那里的所有答案似乎都不同意我的发现.我已经在那里发布了我的答案,但我不知道如何让人们关注它,因为它已经超过2年了.

c# linq linq-to-sql

9
推荐指数
1
解决办法
1939
查看次数

标签 统计

c# ×1

linq ×1

linq-to-sql ×1