C# 在C中使用Dapper插入mysql数据库之前,如何检查该数据库中是否已经存在具有复合键的记录#

C# 在C中使用Dapper插入mysql数据库之前,如何检查该数据库中是否已经存在具有复合键的记录#,c#,mysql,dapper,C#,Mysql,Dapper,供应商和发票是由9个字段组成的表中的组合键。您可以简单地先执行选择查询,然后执行插入,也可以在一次行程中执行,如下所示(SQL Server)。您可以使用下列推荐的短小扩展之一 更新 对于MySQL,您可以编写如下内容 将重复键SupplierId=SupplierId上的值(@SupplierId,@InvoiceId)插入表1(SupplierId,InvoiceId) 尝试选择带有这些字段的项目?如何准确地使用Dapper,我理解如何使用Entity Framework执行类似操作。返回d

供应商和发票是由9个字段组成的表中的组合键。您可以简单地先执行选择查询,然后执行插入,也可以在一次行程中执行,如下所示(SQL Server)。您可以使用下列推荐的短小扩展之一

更新 对于MySQL,您可以编写如下内容

将重复键SupplierId=SupplierId上的值(@SupplierId,@InvoiceId)插入表1(SupplierId,InvoiceId)


尝试选择带有这些字段的项目?如何准确地使用Dapper,我理解如何使用Entity Framework执行类似操作。返回db.table.Find(键1,键2)!=无效@Ronald您是否有使用带有Dapper的
WHERE
子句的经验?谢谢您的提示
string cmd = @"IF NOT EXISTS (SELECT * FROM Table1 WHERE SupplierId=@SupplierId AND InvoiceId=@InvoiceId)
                    BEGIN 
                        INSERT INTO Table1(SupplierId, InvoiceId) VALUES(@SupplierId, @InvoiceId)
                    END";

using (var dbConn = new SqlConnection("Server=(local);Database=MyDatabase;Integrated Security=true"))
{
    dbConn.Execute(cmd, new { SupplierId = 1, InvoiceId = 2 });
}
Console.ReadKey();