2
我有兩個SQL表,每個表都有一個由三個不同整數字段組成的複合鍵。我已經添加了如下代碼以向Table1添加記錄。在某些情況下不會引發DuplicateKeyException
try
{
Table1 newRow = new Table1
{
DomainID = domainID,
ConfigurationID = configID,
ReasonID = reasonID
};
data.Table1.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}
這工作正是我如何有計劃,如果用戶試圖添加重複的行,我可以給他們發送消息等,一切都很好捕獲異常。但是,代碼我有用於插入到表2(其幾乎是相同的,在使用不同的DataContext然而不同的頁),
try
{
Table2 newRow = new Table2
{
DomainID = domainID,
ConfigurationID = configID,
DirectionID = directionID
};
data.Table2.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}
不會引發DuplicateKeyException而是SQLEXCEPTION。不是一個太大的大交易,因爲我仍然可以測試在抓SQLEXCEPTION
e.Number = 2627
,但我只是困惑,爲什麼它正在不同!?
需要查看Table1和Table2 SQL DDL來告訴您如何設置數據庫中的字段和鍵 – n8wrl
查看DataContext。出於某種原因,Table2(LINQ端)不知道該約束或不執行它。 – Paparazzi