我有一個對象Tag
,它鏈接到一大堆其他對象。我正在嘗試處理此對象的刪除。我只是不想刪除標籤,如果它與任何其他對象相關聯。在ASP .NET中刪除之前檢查引用完整性違例MVC
目前我解決這樣的:
if(tag.Stands.Count == 0 && tag.Skids.Count == 0
&& tag.Panels.Count == 0 && tag.Devices.Count == 0
&& tag.Cables.Count == 0 && tag.JunctionBoxes.Count == 0)
{
_db.Tags.DeleteObject(tag);
_db.SaveChanges();
}
如果我沒有檢查所有的這些事情,我明明得到一個參考約束錯誤,例如
System.Data.SqlClient.SqlException:DELETE語句衝突 與基準約束 「FKStandTag237968」。
我知道解決這個問題的方法是使用級聯刪除,但它是實際的業務邏輯,如果標記與任何其他對象關聯,則不應刪除標記。
有沒有一種方法使用實體框架,我可以檢查我不會破壞數據庫上的任何約束,然後再嘗試保存刪除?東西沿着_db.IsValidToDelete(object)
?
這是您需要在數據庫級別處理的錯誤,因此您必須創建一個新的上下文來處理它。 –
我建議看UnitOfWork,看這裏http://lavinski.tumblr.com/post/9114111237/object-relational-mapper-exceptions –