【发布时间】:2012-02-15 19:35:31
【问题描述】:
在使用 NHibernate 几年后,我现在正在学习 Entity Framework 以用于我的下一个项目。目前,我正在尝试在代码优先或模型优先方法之间做出决定。模型优先的方法对我很有吸引力,但结果必须与 ORM 无关。为此,我正在思考以下几点。从 .edmx 文件的 CSDL 和 C-S 映射内容创建 T4 模板是否可行且实用?
【问题讨论】:
标签: entity-framework nhibernate orm
在使用 NHibernate 几年后,我现在正在学习 Entity Framework 以用于我的下一个项目。目前,我正在尝试在代码优先或模型优先方法之间做出决定。模型优先的方法对我很有吸引力,但结果必须与 ORM 无关。为此,我正在思考以下几点。从 .edmx 文件的 CSDL 和 C-S 映射内容创建 T4 模板是否可行且实用?
【问题讨论】:
标签: entity-framework nhibernate orm
没有映射与 ORM 无关,因为它是 ORM API 的一部分,或者您是否看到使用 NHibernate 的 hbm 文件的实体框架? EDMX 是 EDM(实体数据模型)的 XML 表示,它是 MS 资产,主要用于 MS API。此外,并非所有 MS 提供的用于 EDM 处理的 API 都是可访问的(内部实现)。 EDMX 与 ORM 无关。更糟糕的是,它甚至与数据库无关。
无论如何,您都可以创建以 EDMX 作为输入并提供其他映射作为输出的任何自定义工具或转换。您只需要了解输入和输出格式。我不确定 T4 是否可以直接实现,但绝对可以。但这将不实用。 Practical 正在充分利用单个 ORM 并使用可用于该 ORM 的工具。
【讨论】:
创建 T4 模板以从 .edmx 文件为 Fluent NHibernate 生成类是可行且实用的。我在 AMD 的一个项目中正在做这件事。 (本人不是作者。)见:http://tom-jaeschke.blogspot.com/2011/08/use-entity-framework-and-nhibernate.html
【讨论】: