私は次のようなトランザクションを作成しようとしています:
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;