假設我有一個包含PK列的表,其他一些列和一個必須是唯一的表。獨特列,檢查現有記錄,最佳方法
哪種方法更好地處理新記錄添加了已存在的唯一密鑰的可能性?
查詢db例如
if (!_db.MyTable.Any(mt => mt.UniqueCode == newRecord.UniqueCode))
_db.MyTable.Add(newRecord);
else //handle response
或嘗試添加它而不檢查和處理錯誤?例如
try
}
_db.MyTable.Add(newRecord);
}
catch (Exception e)
{
//handle response
}
在第一種方法中,我看到的缺點是需要2次調用db。 (我離開了_db.SaveChanges()
),但我總覺得避免例外情況會更好。怎麼樣?哪一個對性能更好?有沒有更好的辦法?
我取認爲在應用程序中執行異常處理要比第二次往返數據庫更好。考慮到對數據庫的調用涉及到什麼(從EF內部到DB內部和通信),異常處理聽起來不那麼糟糕。但我認爲應該做一個績效評估來證明哪一個最好。 –