2009-08-21 10 views
1

IDataContextを設定し、エンティティのデータクラスを作成するときにIDataContextから継承します。Ado.net Entity FrameworkでSaveChanges()メソッドをどのように使用しますか?

IDataContextインターフェイスには4つのメソッドがあります。

IQueryable<T> GetAll(); 
T GetById(long id); 
void Add(T entity); 
void Delete(T entity); 
void Save(T entity); 

ご存じのように、削除と保存の方法はこの構造になっています。

FooEntities db = new FooEntities(); 

db.DeleteObject(Foo entity); 
// or save changes method 
db.SaveChanges(); 

私はこれらの2つの方法が一般化か何かできることを意味し...

私の質問は、どのように、どこであなたはこれらの2つの方法を使用しないです。エンティティ

  • 又は使用する別の方法のための各データクラスの内部

  • +0

    あなたが話しているこの「IDataContext」は何ですか? EFの標準的な部分ではないようです。 –

    答えて

    1

    フレームワークの詳細をリポジトリパターンで抽象化することができます。ここにEntity FrameworkのIRepositoryのexample implementationがあります。実際の削除と保存をどこで呼び出すかについては、コントローラ/プレゼンターが有力候補です。

    +0

    ありがとう、私は今それを読むつもりです –

    0

    DeleteObjectは、ストアからオブジェクトを削除するために使用されます。上記のようにDeleteObjectを呼び出すと、オブジェクトは削除済みとしてマークされます。 SaveChanges()の呼び出しは、実際にその変更をデータベースにコミットします。両方ともストアからオブジェクトを削除するために必要です。

    +0

    あなたの答えをありがとうが、これは私が求めているものではありません。 エイダンの答えを見てください –

    +0

    申し訳ありませんが、あなたの質問に誤解されています。 Aidanは正しいです。リポジトリパターンは、EFをラップして統合するための良い方法です。ここに別の良い記事があります:http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx –

    関連する問題