博客园混用 Dapper 跟 EF 方式?

2020-09-07 12:47发布

我使用 dapper 和 ef, 就像下面的代码一样。
我不会使用 ef sqlquery,而是使用 ef 连接和 dapper query/execute来执行我的 sql 逻辑,因为:

  • dapper 查询速度更快。
  • 这样可以重复利用公共连接池。
using (var db = new MyDbContext())
using (var tran = db.Database.BeginTransaction()){

    //EF
    var hoge = db.HogeTable.FirstOrDefault();
    hoge.Name = "fuga";
    db.SaveChanges();

    //Dapper
    // create query and params
    db.Database.Connection.Execute(query, params, tran.UnderlyingTransaction);
    tran.Commit();
}

请问博客园跟各位前辈也是这样做吗?

标签: c# dapper
5条回答
beautiful°
2楼-- · 2020-09-07 13:13

简单的用ef,复杂的查询用dapper

查看更多
Deceive 欺骗
3楼-- · 2020-09-07 13:25

可以这样使用,我们很少进行这样的混用

查看更多
Melony?
4楼-- · 2020-09-07 13:26

dapper就是高级的sqlhelper,如果你的sql很复杂,考虑性能,可以使用dapper,单表或者简单的查询可以用EF

查看更多
狗以群分
5楼-- · 2020-09-07 13:35

只要不用LINQ,只算SQL查询速度和绑定实体的话EF Core速度比dapper快,至于为什么这么快,其实我TM也想知道。

查看更多
时光不老,我们不散
6楼-- · 2020-09-07 13:35

这样写造成业务代码和技术代码耦合严重,不利于测试、业务扩展、性能优化等

查看更多
登录 后发表回答