实体数据模型(.edmx 文件)是否与 ORM 无关?

发布于 2025-01-05 18:36:02 字数 196 浏览 0 评论 0原文

使用 NHibernate 几年后,我现在正在学习实体框架,以便在我的下一个项目中使用。目前,我正在尝试在代码优先或模型优先方法之间做出决定。模型优先的方法对我很有吸引力,但结果必须与 ORM 无关。为此,我思考以下几点。创建从 .edmx 文件的 CSDL 和 CS 映射内容生成类和 .hbm.xml 文件(与 NHibernate 一起使用)的 T4 模板是否可能且实用?

After having used NHibernate for several years, I am now learning Entity Framework for use on my next project. At the moment, I am trying to decide between the code-first or model-first approaches. The model-first approach appeals to me, but the result would have to be ORM-agnostic. To this end, I am pondering the following. Would it be possible and practical to create T4 templates that generate classes and .hbm.xml files (for use with NHibernate) from the CSDL and C-S mapping content of a .edmx file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只是我以为 2025-01-12 18:36:02

没有映射是 ORM 不可知的,因为它是 ORM API 的一部分,或者您是否看到使用 NHibernate 的 hbm 文件的实体框架? EDMX 是 EDM(实体数据模型)的 XML 表示形式,EDM 是 MS 资产,主要用于 MS API。此外,并非 MS 提供的所有用于 EDM 处理的 API 都是可访问的(内部实现)。 EDMX 与 ORM 无关。更糟糕的是,它甚至与数据库无关。

无论如何,您可以创建任何自定义工具或转换,将 EDMX 作为输入并提供其他映射作为输出。您只需要了解输入和输出格式。我不确定 T4 是否可以直接实现,但绝对是可能的。但这并不实用。实用的是充分利用单个 ORM 并使用可用于该 ORM 的工具。

No mapping is ORM agnostic because it is part of that ORM API or did you see Entity framework using NHibernate's hbm files? EDMX is XML representation of EDM (Entity Data Model) which is MS asset and it is mainly used for MS APIs. Moreover not all API for EDM processing provided by MS is accessible (internal implementation). EDMX is not ORM agnostic. The worse part is that it is even not database agnostic.

Anyway you can create any custom tool or transformation taking EDMX as input and providing other mapping as output. You just need to understand input and output format. I'm not sure if it will directly be possible with T4 but it is definitely possible. But it will not be practial. Practical is using single ORM to its full power and use tools available for that ORM.

故事灯 2025-01-12 18:36:02

创建从 .edmx 文件生成 Fluent NHibernate 类的 T4 模板是可能且实用的。我正在参与 AMD 的一个项目,我们就是这么做的。 (我本人不是作者。)请参阅: http://tom-jaeschke.blogspot.com/2011/08/use-entity-framework-and-nhibernate.html

It is possible and practical to create T4 templates that generate classes for Fluent NHibernate from an .edmx file. I am on a project at AMD where we are doing just that. (I am not the author myself.) See: http://tom-jaeschke.blogspot.com/2011/08/use-entity-framework-and-nhibernate.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文