Как вызвать ObjectContext.Refresh() при использовании ADO.NET Unit Testable Repository Generator
Я использую "Генератор репозитариев ADO.NET Unit Testable" ( описан здесь) для генерации классов сущностей. Этот шаблон T4 автоматически генерирует следующие классы, кроме классов для объектов базы данных:
- < MyEntities>.cs - функциональный контекст конкретного объекта
- < MyEntities> BaseRepositoryTest.cs
- < MyEntities> Mock.cs - конкретный фиктивный объект контекста, который реализует интерфейс контекста.
- < MyEntities> Mock.ObjectSet.cs
- < MyModelRepository>.Context.cs
- < MyEntities> PartialRespository.cs
- 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()?
1 ответ
AFAIK это не может быть сделано, так как IMyEntities
не наследует ObjectContext
, Но MyEntities
делает.
Когда я меняюсь
private IMyEntities _context;
в
личное MyEntities _context;
я могу позвонить ObjectContext.Refresh()
с помощью _context.Refresh()
,