Mocking DbContext.Set ()?

Сначала мы используем код 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?

10
задан skaffman 15 February 2011 в 17:27
поделиться