我对使用 Dapper 很感兴趣——但据我所知,它只支持查询和执行。我没有看到 Dapper 包含插入和更新对象的方法。
鉴于我们的项目(大多数项目?)需要进行插入和更新,与 dapper 一起进行插入和更新的最佳实践是什么?
最好我们不必求助于 ADO.NET 的参数构建方法等。
此时我能想到的最佳答案是使用 LinqToSQL 进行插入和更新。有更好的答案吗?
我们正在考虑构建一些帮助程序,仍在决定 API 以及是否进入核心。有关进度,请参阅:https ://code.google.com/archive/p/dapper-dot- net/issues/6。
同时,您可以执行以下操作
val = "my value"; cnn.Execute("insert into Table(val) values (@val)", new {val}); cnn.Execute("update Table set val = @val where Id = @id", new {val, id = 1});
等等
另请参阅我的博客文章:那个烦人的 INSERT 问题
更新
正如评论中所指出的, Dapper.Contrib 项目中现在有几个以这些IDbConnection扩展方法的形式可用的扩展:
IDbConnection
T Get<T>(id); IEnumerable<T> GetAll<T>(); int Insert<T>(T obj); int Insert<T>(Enumerable<T> list); bool Update<T>(T obj); bool Update<T>(Enumerable<T> list); bool Delete<T>(T obj); bool Delete<T>(Enumerable<T> list); bool DeleteAll<T>();