我使用LINQ2SQL我有一個表叫做客戶有三列LINQ到SQL DuplicateKeyException問題
CustmerID,CustomerCode,客戶名稱
CustmerID是Primery鍵(身份= YES)和CustomerCode只是唯一鍵。
當我更新此表使用LINQ to SQL與重複的客戶代碼,我期望看到DuplicateKeyException,但它將進入一般異常塊而不是DuplicateKeyException塊。有任何想法嗎?
這是代碼
公共無效更新(客戶CUST) { 使用(LINQDemoDataContext分貝=新LINQDemoDataContext()){ 顧客 實體= CustomerMapper.ToEntity(新的顧客(),卡斯特);
try
{
db.Customers.Attach(entity, true);
db.SubmitChanges();
}
//Concurrency Exception
catch (ChangeConflictException)
{
throw new ChangeConflictException("A concurrency error occurred!");
}
//duplicate record
catch (DuplicateKeyException)
{
throw new DuplicateKeyException(entity.CustmerCode);
}
//everything else
catch (Exception ex)
{
throw ex;
}
}
}
我使用VisualWebDeveloperExpress 2008和SQL Express的2005
感謝&問候, Supremestar
當拋出像這樣的異常時,我會將原始異常作爲InnerException(使用不同的構造函數)。另外,不要用`throw ex;`代替最後一個catch,只需使用`throw;`。 – 2009-07-15 15:46:24
或者,如果您不處理它,只是不要捕獲最後一個異常。 – 2009-07-15 15:46:54