公开实体框架的接口POCO列表,其中没有引用实体框架
本文关键字:实体 框架 引用 POCO 接口 列表 | 更新日期: 2023-09-27 17:59:47
我正在使用实体框架4的POCO模板。
我制作了另一个文件来实现上下文对象的分部类。在那个文件中,我添加了一个对我创建的接口的引用。
接口中只有一个属性:
IQueryable<Client> Clients { get; set; }
实际生成的文件中包含以下内容:
public ObjectSet<Patient> Clients
{
get { return _clients ?? (_clients = CreateObjectSet<Client>("Clients")); }
}
private ObjectSet<Client> _clients;
现在,ObjectSet实现了IQueryable<>。但当我这样做时,我会得到以下错误:
"ClientContracts.ArupEntities"未实现接口成员"RepositoryInterfaces.IClientReseository.Clients"。"ClientContracts.ArupEnities.Clients"无法实现"RepositoryInterfaces.IClientReseository.Clients",因为它不具有匹配的返回类型"System.Linq.IQueueryable"
我以为我可以做到这一点并让它发挥作用。显然我不能。。。
有没有一种方法可以将POCO实体列表公开为不绑定到实体框架的接口?
不,它不是这样工作的。实现接口时,必须返回接口定义中定义的类型。此外,您在示例中使用的泛型类型Patient
/Client
也存在一些差异。
您可以重新定义界面,如:
IQueryable<Client> ClientsQuery();
在部分上下文类中使用:
public IQueryable<Client> ClientsQuery()
{
return Clients;
}