一尘不染

使用Dapper执行插入和更新

c#

我对使用Dapper感兴趣-但据我所知,它仅支持查询和执行。我看不到Dapper包含一种插入和更新对象的方法。

鉴于我们的项目(大多数项目?)需要进行插入和更新,与dapper一起进行插入和更新的最佳实践是什么?

最好我们不必诉诸于ADO.NET参数构建方法等。

此时,我能想到的最佳答案是使用LinqToSQL进行插入和更新。有更好的答案吗?


阅读 436

收藏
2020-05-19

共1个答案

一尘不染

我们正在考虑建立一些帮助器,仍在决定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扩展方法形式的几个扩展:

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>();
2020-05-19