我正在尝试创建这样的交易:
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
options))
{
try
{
dbContext.MyTable.PartnerId = someGuid;
dbContext.SaveChanges();
scope.Complete();
dbContext.AcceptAllChanges()
}
catch (Exception ex)
{
log.LogMessageToFile("Exception - ExceptionType: " +
ex.GetType().ToString() + "Exception Messsage: " + ex.Message);
}
}
我知道如果我尝试在 sql 中手动插入一个项目,并且在特定列中有重复项,我会从 sql 中收到以下错误:
无法在具有唯一索引“idx_PartnerId_notnull”的对象“dbo.MyTable”中插入重复的键行。重复键值为 (7b072640-ca81-4513-a425-02bb3394dfad)。
如何以编程方式专门捕获此异常,以便对其采取行动。
这是我对专栏的约束:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;