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