0

「<strong>ADO.NETユニットテスト可能リポジトリジェネレータ」(ここで説明)を使用してエンティティクラスを生成しています。このT4テンプレートは、データベースオブジェクトのクラスとは別に、次のクラスを自動的に生成します。

  1. < MyEntities > .cs-機能的な具体的なオブジェクトのコンテキスト
  2. < MyEntities > BaseRepositoryTest.cs
  3. < MyEntities >Mock.cs-コンテキストのインターフェースを実装する具体的なモックコンテキストオブジェクト。
  4. < MyEntities > Mock.ObjectSet.cs
  5. < MyModelRepository > .Context.cs
  6. < MyEntities > PartialRespository.cs
  7. I< MyEntities > .cs-特殊なオブジェクトコンテキストのインターフェイス。

これらのクラスのいくつかが何のためにあるのか完全にはわかりません。

すべてのデータベースアクセス/更新操作を実行するマネージャークラスを使用しています。

// Contains all Methods that access the database 
public class DataManager
{
    private IMyEntities _context;

    public DataManager()
        : this(new MyEntities())
    {
    }

    public bool AddOrder(Order order)
    {
      _context.Orders.AddObject(order);
      _context.SaveChanges();
    }
  ...
  }

を呼び出すときに同時実行例外をチェックしたい_context.SaveChanges()_context.Refresh()理想的には、並行性の問題が発生した場合に電話をかけたいと思います。ただし、自動生成されたObjectContextクラスIMyEntitiesには次のようなメソッドがありますObjectContext.Refresh()

私は何が間違っているのですか?どうすればRefresh()を呼び出すことができますか?

4

1 に答える 1

0

AFAIKIMyEntitiesは継承しないため、これを行うことはできませんObjectContext。しかし、MyEntitiesそうです。

着替えたら

プライベートIMyEntities_context;

プライベートMyEntities_context;

ObjectContext.Refresh()を使用して呼び出すことができます_context.Refresh()

于 2012-05-23T08:43:47.347 に答える