2011-09-15 62 views
1

嗨,我對EF完全陌生,而且我很難找到我的頭,但繼承了場景。我創建了一個項目,並添加了一個edmx圖,我用它從預建的SQL數據庫中生成模型。該dame圖表爲每個模型生成一個代碼作爲我的上下文。上下文看起來像:如何覆蓋實體框架中的DeleteObject

public partial class BuzzEntities : ObjectContext 
{ 
    public ObjectSet<Case> Cases 
    { 
     get 
     { 
      if ((_Cases == null)) 
      { 
       _Cases = base.CreateObjectSet<Case>("Cases"); 
      } 
      return _Cases; 
     } 
    } 

確定到目前爲止,這可以讓我做的事情一樣

private Buzz.BuzzEntities db = new BuzzEntities(); 
db.Cases.DeleteObject(someCase); 

這將刪除從數據庫中someCase。然而,我想要做的,我重寫刪除方法,以便刪除該對象而不是刪除對象的屬性作爲刪除對象。即someCase.Delete = true;系統的下一部分是防止系統加載具有deleted = true的個案。基本上我不想從系統中刪除剛剛隱藏的記錄。

什麼是最好的方式來實現這一目標?我知道我可以手動更改字段,只保存記錄而不是調用刪除對象,但我不想擔心在我的用戶界面中設置或隱藏記錄我希望框架能夠爲我處理它。

回答

0

您無法覆蓋刪除操作。您可以創建自定義存儲過程和實體的map it to delete operation。您的問題的第二部分可以通過使用conditional mapping來實現,其中只有使用已刪除!= true的實體纔會被使用。

相關問題