代码优先实体框架或 NHibernate
Posted
技术标签:
【中文标题】代码优先实体框架或 NHibernate【英文标题】:Code First Entity Framework Or NHibernate 【发布时间】:2011-07-25 07:22:58 【问题描述】:我对 Code First EF 4.1 和 NHibernate 还是很陌生。 我需要开发一个必须具有以下功能的 ORM。
-
使用复合键执行 CRUD
在某些情况下使用自定义 SQL 语句。
可以在运行时更改连接。
可以在执行之前或之后记录 SQL 语句。
需要同时支持 MS SQL 和 Oracle。
我有点困惑该选择哪一个。 请多多指教。
【问题讨论】:
【参考方案1】:好吧,这里是功能的一般比较:
.net ORM Comparison
根据您的需要,EF 和 NH 都支持 1、2、3 和 5。
记录是另一回事。 EF绝对没有开箱即用的东西。 NH 记录所有内容,您可以选择不同的级别、记录器等。
【讨论】:
只是一个注意,两者都是......相同的(可以这样阅读,而您确实 NOT 明确说明了它;)。让我在 EF 中疯狂的是,我无法将smallint
(DB) 映射到 int
(C#)。假设数据库管理员优化了一些主键(在具有数百万条记录的 fact 表中引用 - 合理)......我必须更改应用层实现。关注点分离在哪里?这不是 NHibernate 的问题。但是我到处都能找到这些细微的差别……【参考方案2】:
我使用 NHibernate,我认为您可以用它来满足您的所有要求。
尝试在这里查看更多信息:
Deciding between NHibernate vs Entity Framework?
【讨论】:
【参考方案3】:我会选择 Nhibernate。它支持所有这些功能,并且目前比 EF 经受了更多的实战考验。
【讨论】:
【参考方案4】:可能有点晚了,但我刚刚发布了 NHibernate 3.x 与 Entity Framework 5 和 6 的最新比较。http://www.dennisdoomen.net/2013/03/entity-framework-56-vs-nhibernate-3.html
【讨论】:
以上是关于代码优先实体框架或 NHibernate的主要内容,如果未能解决你的问题,请参考以下文章