c# - Dapper 插入,检查记录是否存在

标签 c# dapper

所以我一直在使用这种方法将记录插入我的数据库:

TransactionBlock.Connection.Execute(
                            "INSERT Table(Item,Id)VALUES(@Item, @Id);
                            new {Item,Id = id }, TransactionBlock.Transaction);

我现在需要修改它,首先使用以下方法检查数据库中是否已经存在 Item/id:

const sql = "IF EXISTS (SELECT * FROM Table, where Item=@Item...etc etc

但我还没有遇到任何如何实现这一点的例子。我可以通过创建存储过程来实现这一点,但我想尝试使用这种方法来完成。

最佳答案

假设您正在使用 SQL Server 并且您只想插入不存在的记录,那么您正在寻找的 SQL 是

IF NOT EXISTS (SELECT * FROM Table WHERE Id = @Id) 
    INSERT INTO Table(Item, Id) VALUES(@Item, @Id)

关于c# - Dapper 插入,检查记录是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760426/

相关文章:

c# - 如何在参数类型为 List<BaseClass> 时传递 List<DerivedClass>?

c# - 使我的 ASP.NET 网站与 Firefox 兼容?

javascript - 如何在asp.net c#中将asp数据表绑定(bind)到字符串数组?

c# - 为什么不处理字体句柄?

c# - DapperExtensions在插入操作时产生“无效的对象名称”

c# - 使用 Dapper 点网映射域实体的私有(private)属性

c# - System.Reflection.TargetInvocationException;需要帮助理解

mysql - AppHarbor:通过 ASP.NET MVC 5 + Dapper 连接到 MySQL 数据库

asp.net-core - 如何通过在 dapper 中执行 SQL 查询返回字符串

c# - Dapper ORM嵌套对象