0

我正在为我的公司使用实体框架(EF)制作OData(WCF数据服务)端点。如果我想要OData + EF +我自己的合同,是否需要创建自定义数据提供者?

我们已经认识到标准的OData + EF将我们与数据库过于紧密地联系起来] 1。所以我打算在EF和OData之间添加另一个层。

所以我的问题是:我需要做一个Custom Data Service Provider或者有没有办法将OData Reflection Provider连接到EF?我已阅读了有关Reflection Provider的内容,它似乎只适用于内存中的内容。我不知道如何连接到EF加载数据的方式。

注意:我的OData服务是只读的。我不需要它们是可更新的。

回答

0

据我了解您的问题反射提供商应该满足您的所有要求。你只需要创建一些类,它将暴露你的自定义对象的属性IQueryable<>。反射提供者不能仅仅使用内存的东西 - 它只需要一个类来反射探索,但该类的实现取决于你。 Linq-to-Sql上下文也通过反射提供者公开,它们绝对不仅仅是内存中的东西。

您将遇到的问题是将查询转换为您的自定义对象,因为这些查询无法在本机上进行翻译,因此无法查询您的实体。

相关问题