我对使用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>();