我正在從內部系統批量添加一堆記錄到我們的Web數據庫服務器(電子賬單類型數據)。我有一個問題,如果有數據錯誤(單獨問題),每個錯誤後添加錯誤。當出現錯誤時從Entity Framework中刪除一批記錄
foreach (InvoiceHeader invoiceHeader in invoiceHeaders)
{
rrn++;
db.AddToInvoiceHeaders(invoiceHeader);
if (rrn >= RECORDS_AT_A_TIME)
{
try
{
db.SaveChanges();
rrn = 0;
}
catch (Exception e)
{
string errorText = "Error in blah blah blah \n\n";
errorText += "Error: " + e.ToString();
Log.Error(errorText);
// Delete out bad record or entire set of records here.
}
}
}
因此,第一個500可能會很好,那麼我可能會得到一個無效的日期。沒有其他東西會被添加到服務器中,並且日誌會因錯誤和崩潰而受到抨擊。
如何清除出錯的記錄或清除那批記錄?所以它可以正常完成,我們可以回去修復錯誤,從而加回丟失的數據。
更新:我希望能夠記錄錯誤,刪除問題記錄並繼續前進。在這種情況下,它恰好是一個日期問題,我不是在尋找解決這個一個實例,但所有未來未知的問題。我該怎麼做// Delete out bad record or entire set of records here.
?
在添加它們之前進行驗證。你說「我們的數據庫」,這意味着你知道驗證約束。 – Marius
什麼是無效日期?它出了還是SQL最小/最大日期範圍?什麼是確切的錯誤信息? – cadrell0
我確實......並且我處理了所有日期問題(或者我認爲),而且我仍然遇到了錯誤。這是關於不堵塞我們的日誌和崩潰的服務器。不是如何解決數據問題。我只想在記錄錯誤時完成此過程,以便稍後解決。 –