如何在使用ADO.NET Unit Testable Repository Generator时调用ObjectContext.Refresh()

时间:2012-05-17 11:11:37

标签: .net entity-framework entity-framework-4 t4 objectcontext

我正在使用“ ADO.NET单元可测试存储库生成器”(described here)来生成实体类。这个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. 我< MyEntities > .cs - 专门对象上下文的界面。
  8. 我不完全确定这些课程的用途。

    我正在使用一个执行所有数据库访问/更新操作的管理器类。

    // 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()?

1 个答案:

答案 0 :(得分:0)

AFAIK无法完成此操作,因为IMyEntities未继承ObjectContext。 但MyEntities确实如此。

当我改变

  

私人IMyEntities _context;

  

私人MyEntities _context;

我可以使用ObjectContext.Refresh()致电_context.Refresh()