我正在与以下mockable存储库模式试验:为什么`Table`成员不能实现底层接口`ITable`成员?
public interface IEmployeeRepository
{
ITable<Employee> Employees { get; }
}
这表示能够返回Employee
对象的ITable
的容器。我希望能够根据存储库创建一个模拟对象,并让我的Linq-to-Sql DataContext
实现存储库接口。所以我想我可以只使用部分类声明我DataContext
类型来实现IEmployeeRepository
,因为它已经Table<Employee>
类型的自动生成的成员Employees
:
public partial class MyDataContext : IEmployeeRepository { }
我收到以下错误消息的结果:
'MyDataContext'没有实现接口成员 'IEmployeeRepository.Employees'。 'MyDataContext.Employees'不能 实现'IEmployeeRepository.Employees',因为它没有 匹配返回类型'System.Data.Linq.ITable'。
但Table<Employee>
继承ITable<Employee>
,所以它不应该是一个合适的返回类型实现接口?
可能重复[“接口没有实现”返回派生类型时(http://stackoverflow.com/questions/1121283/interface-没有实现的时候返回派生类型) – mellamokb 2012-04-09 18:06:13