小编sec*_*wep的帖子

在Linq操作之前,Dapper是否从数据库请求完整对象?

我一直很好奇Dapper(或许其他ORM)在与LINQ结合时如何处理对象检索.

如果我有这样的课程:

public static IEnumerable<SitePage> GetAll()
{
    using (IDbConnection cn = new SqlConnection(g.Global.CONX))
    {
        cn.Open();
        return cn.GetAll<SitePage>();
    }
}
Run Code Online (Sandbox Code Playgroud)

我构建一个这样的查询:

var result = SitePage.GetAll().Select(c=> new { c.id, c.PageUrl, c.ParentId });
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果在后台,整个记录集被拉入包括所有其他列(可能包含非常大的varchars),或者Dapper是否从这个查询中理解只是为了从sql db中提取我请求的列?我意识到它有点像新手,但我想更好地理解Dapper/LINQ交互.

这里发布了一个类似的问题:选择特定列 - 使用linq-what-gets-transferred,但我不确定是否已经完全回答.海报有2个问题,也没有使用我通常喜欢的lambda表达式.

对此的回答将使我的思绪发火(并且很可能改变我编码的方式,因为我一直谨慎并且觉得我通过显式sql编写了太多代码).

linq sql-server dapper dapper-contrib

2
推荐指数
1
解决办法
551
查看次数

标签 统计

dapper ×1

dapper-contrib ×1

linq ×1

sql-server ×1