在dapper中插入(或更新)用户记录时,强制执行唯一约束(例如在电子邮件地址上)的最佳做法是什么?
为了防止竞争条件,我猜你只是尝试插入并让SQL Server在违反约束时返回错误 - 然后处理它?我找不到使用Dapper如何做到这一点的例子 - 或者对最佳实践的任何想法?
THX。
答案 0 :(得分:3)
这根本不是一个小巧的打算回答的问题。 Dapper只运行SQL。但可以肯定的是,数据库中的唯一约束听起来很好 - C#6中的异常过滤器对于处理特定的SQL异常非常有用:
catch(SqlException ex) when (ex.Number == 2627 || ex.Number == 2601)
{ ... }