2011-09-15 15 views
1

こんにちは、私はEFの新機能です。私はプロジェクトを作成し、事前に構築されたSQLデータベースからモデルを生成するために使用したedmxダイアグラムを追加しました。そのデイムダイアグラムは私のための文脈である各モデルのためのコードを生成しました。これまでのところ、これは私がデータベースからsomeCaseを削除しますEntity FrameworkのDeleteObjectをオーバーライドする方法

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

のようなものを行うことができますOK

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

:コンテキストは次のように見えます。しかし、私は何をしたいのですか?オブジェクトを削除する代わりに、削除されたオブジェクトのプロパティをマークするように、deleteメソッドをオーバーライドします。すなわちsomeCase.Delete = true;システムの次の部分は、システムがdeleted = trueのケースを読み込まないようにすることです。基本的には、システムから隠されたレコードだけが削除されることを望みません。

これを達成する最も良い方法は何ですか?私は手動でフィールドを変更し、削除オブジェクトを呼び出す代わりにレコードを保存することができますが、UIのレコードを設定または非表示にすることを心配したくありません。

答えて

0

削除操作を上書きすることはできません。エンティティのカスタムストアドプロシージャとmap it to delete operationを作成できます。あなたの問題の2番目の部分は、conditional mappingを使って実現できます。ここでは、削除された!= trueのエンティティのみが使用されます。

関連する問題