Сначала мы используем код EF и имеем контекст данных для нашей базы данных продаж. Кроме того, у нас есть класс, который находится поверх нашего контекста данных и выполняет некоторые базовые операции CRUD.
Например, у нас есть следующая функция:
public static T Create(int userId, T entity) where T : class, IAllowCreate
{
if (entity == null)
throw new ArgumentNullException("entity");
using (SalesContext dc = new SalesContext())
{
dc.Set().Add(entity);
dc.SaveChanges();
return entity;
}
}
Я нашел пример того, как создавать поддельные контексты и свойства IDBset. Я начал реализовывать это, но столкнулся с проблемой.
Мы довольно широко используем dc.Set () (как показано выше) в нашем коде, поскольку мы пытаемся создать общие методы CRUD. Вместо ReadCustomer, ReadContact и т. Д. Мы просто выполняем Read (). Однако dc.Set возвращает DbSet, а не IDbSet, поэтому я не могу высмеивать это.
Кто-нибудь мог имитировать или подделывать DbContext и по-прежнему использовать функциональность Set?