【发布时间】:2012-03-12 09:49:08
【问题描述】:
我想知道哪个最适合 - 项目的 EDM 或反射提供程序。 绝对 EDM 在数据库上开发要简单得多。但问题是,如果我们已经在数据库上有一个数据访问层,那么如果选择 EDM,我们可能必须更改现有架构。所以我想知道是否有在使用实体数据模型或反射提供程序将数据公开为 Odata 提要时的任何具体差异。
【问题讨论】:
标签: odata ado.net-entity-data-model
我想知道哪个最适合 - 项目的 EDM 或反射提供程序。 绝对 EDM 在数据库上开发要简单得多。但问题是,如果我们已经在数据库上有一个数据访问层,那么如果选择 EDM,我们可能必须更改现有架构。所以我想知道是否有在使用实体数据模型或反射提供程序将数据公开为 Odata 提要时的任何具体差异。
【问题讨论】:
标签: odata ado.net-entity-data-model
反射提供者使用反射根据您的类层次结构构建模型。 EDM 提供者直接使用实体框架创建的模型。如果您已经有一个数据访问层,那么我认为您实际上有三个选择: - 如果效果很好,请尝试使用反射提供程序。不幸的是,我怀疑它会起作用——它会改变你的对象,但我认为它不会向数据库发送查询。除了能够更新数据之外,您还需要实现 IUpdatable 接口 - 对于 EDM/EF 提供商,您可能需要将所有数据访问层移至 EF。这意味着您可能必须摆脱您拥有的访问层。好处是一旦完成,它应该可以开箱即用(查询更新等) - 最后你可以实现一个自定义提供程序。您必须实现一些接口,它们将充当 WCF 数据服务和访问层之间的桥梁。请注意,这是相当多的工作。这是该系列的第一篇文章,描述了如何做到这一点:http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx
【讨论】: