C#继承和接口混乱

时间:2011-06-24 19:49:37

标签: c# inheritance

我正在尝试使用伪造的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'的定义

我似乎无法理解我需要在模式中更改以允许我访问context.Entry和context.Database部分

1 个答案:

答案 0 :(得分:1)

您收到该特定错误的原因是IEmployeeContext不包含名为Entry的方法。

EntryDbContext的成员。