C#继承和接口混淆

本文关键字:接口 继承 | 更新日期: 2023-09-27 18:00:13

我正在尝试使用EF 4.1 DataContext的fakes来测试存储库,而不测试数据库(由于部署问题)

我正在做类似的事情

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;

它抱怨

"IEemployeeContext"不包含"Entry"的定义

我似乎无法理解我需要在模式中改变什么才能访问上下文。条目和上下文。数据库部分

C#继承和接口混淆

出现特定错误的原因是IEmployeeContext不包含名为Entry的方法。

CCD_ 3是CCD_。