我使用 dapper 和 ef, 就像下面的代码一样。
我不会使用 ef sqlquery,而是使用 ef 连接和 dapper query/execute来执行我的 sql 逻辑,因为:
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();
}
请问博客园跟各位前辈也是这样做吗?
dapper就是高级的sqlhelper,如果你的sql很复杂,考虑性能,可以使用dapper,单表或者简单的查询可以用EF
可以这样使用,我们很少进行这样的混用
请问前辈你们都是如何使用呢?
@我问故我在: 优先使用 ef ,在需要使用 dapper 时会直接 new SqlConnection
只要不用LINQ,只算SQL查询速度和绑定实体的话EF Core速度比dapper快,至于为什么这么快,其实我TM也想知道。
真的 @@?! 请问前辈有测试来源数据吗?
简单的用ef,复杂的查询用dapper
这样写造成业务代码和技术代码耦合严重,不利于测试、业务扩展、性能优化等