我正在为我的公司使用Entity Framework(EF)创建一个OData(WCF数据服务)端点。
我们已经意识到标准OData + EF将我们与数据库1过于紧密地联系在一起。所以我想在EF和OData之间添加另一层。
所以我的问题是:我是否需要制作Custom Data Service Provider或者有没有办法将OData Reflection Provider连接到EF?我读过有关Reflection Provider的内容,它似乎只适用于内存中的东西。我不知道如何将其连接到EF的加载数据的方式。
注意:我的OData服务是只读的。我不需要它们可以更新。
答案 0 :(得分:0)
我理解您的问题反思提供商应该满足您的所有要求。您只需要创建一些类,它将使用IQueryable<>
自定义对象公开属性。反射提供程序不能仅使用内存函数 - 它只需要一个类来反射探索,但该类的实现由您决定。 Linq-to-Sql上下文也通过反射提供程序公开,它们绝对不仅仅是内存中的东西。
您将遇到的问题是将查询转换为您的自定义对象,并将查询转换为您的实体,因为无法进行本地翻译。