C # наследование и путаница интерфейсов - PullRequest
0 голосов
/ 24 июня 2011

Я пытаюсь использовать подделки для EF 4.1 DataContext для тестирования хранилища без проверки базы данных (из-за проблемы развертывания)

Я делаю что-то вроде этого

public interface IEmployeeContext
{
    IDbSet<Department> Departments { get; }
    IDbSet<Employee> Employees { get; }
    int SaveChanges();
}

public class EmployeeContext : DbContext, IEmployeeContext
{
    public IDbSet<Department> Departments { get; set; }
    public IDbSet<Employee> Employees { get; set; }
}

public class FakeEmployeeContext : IEmployeeContext
{
    public IDbSet<Department> Departments { get; set; }
    public IDbSet<Employee> Employees { get; set; }
    public FakeEmployeeContext ()
    {
        Departments = new FakeDbSet<Department>();
        Employees = new FakeDbSet<Employee>();
    }
}

, который прекрасно работает большую часть времени, но моя проблема в том, что иногда в моем коде я использую такие вещи, как:

context.Entry(department).State  = EntityState.Modified;

и жалуется, что

IEmployeeContext не содержит определения для Entry

Я не могу понять, что мне нужно изменить в шаблоне, чтобы дать мне доступ к контексту. Вход и контекст. Разделы базы данных

1 Ответ

1 голос
/ 24 июня 2011

Причина, по которой вы получаете эту конкретную ошибку, заключается в том, что IEmployeeContext не содержит метод с именем Entry.

Entry является членом DbContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...