小编典典

使用 Dapper 执行插入和更新

all

我对使用 Dapper 很感兴趣——但据我所知,它只支持查询和执行。我没有看到 Dapper 包含插入和更新对象的方法。

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

最好我们不必求助于 ADO.NET 的参数构建方法等。

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


阅读 60

收藏
2022-06-04

共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>();
2022-06-04