.net 从实体框架到NHibernate

.net 从实体框架到NHibernate,.net,entity-framework,nhibernate,.net,Entity Framework,Nhibernate,目前,我们有两个数据库,我们将使用。一个来自一个预先存在的产品,因此我们无法控制它。另一个是我们完全控制的 目前,我们使用EF4 CTP是因为我们需要空间功能,但显然这不能用于产品代码中,而且EF的最新版本没有空间功能,因为这是用于.Net Framework的后续版本,因此正在决定前进的方向,一个建议是移到NHibernate并使用空间插件 所以第一个问题是关于学习曲线和工具之间的移动。在我看来,NHibernate似乎在它所做的事情上更加明显,EF隐藏了它在典型MS风格中所做的很多事情,这公

目前,我们有两个数据库,我们将使用。一个来自一个预先存在的产品,因此我们无法控制它。另一个是我们完全控制的

目前,我们使用EF4 CTP是因为我们需要空间功能,但显然这不能用于产品代码中,而且EF的最新版本没有空间功能,因为这是用于.Net Framework的后续版本,因此正在决定前进的方向,一个建议是移到NHibernate并使用空间插件

所以第一个问题是关于学习曲线和工具之间的移动。在我看来,NHibernate似乎在它所做的事情上更加明显,EF隐藏了它在典型MS风格中所做的很多事情,这公平吗

所以我认为未来的方法是使用类图来描述我们控制的数据库。然后我们将从中创建POCO类,然后您需要创建映射文件。它真的像那样直截了当吗?这些映射文件,我们是否需要手动编写它们,或者我们是否有从POCO类创建的工具

下一个问题是关于预先存在的数据库以及我们在这里做什么。EF使导入数据库和创建类变得很容易,在NHibernate中它是不是很简单

以防影响答案

我们控制的数据库使用MS SQL数据库。 我们没有的是Oracle,我们使用Oracle的ODAC实体框架代码


非常感谢

对于现有的数据库,我建议使用它进行映射。 在这个项目中有一个很好的例子


有两种方法可以同时进行POCO生成和Fluent映射,我没有尝试过任何一种方法,但我已经读过了

我建议只使用NHibernateV3.2,因为它内置了对在代码中创建映射的支持。除非你知道你需要一些只有Fluent NHibernate才有的功能。我最近从Fluent-NHibernate迁移到了plain-NHibernate,尽管映射语法没有那么好,而且缺少文档,但我认为用它代替Fluent-NHibernate没有问题。酷,我不知道NHibernate现在有这个。