2009-06-08 79 views
2

我将在我的项目中使用SQL Server,为此我想选择一个ORM。我有一些NHibernate as an ORM的经验。实际上,鉴于该项目(MySQL后端)的性质,NHibernate的确是,只有的选择。针对SQL Server的ORM推荐

我也使用strongly typed dataset as my ORM,这是微软Access作为后端。我也有一些LINQ2SQL的经验。

现在,我知道,所有路径导致罗马;很多ORM可以很好地处理sql server。但我想在

  1. 开发时间方面最好的ORM。也就是说,拖放设计器将我的实体类映射到数据库模式。所以,如果我改变我的模式,我的实体类会自动更新。
  2. 多个数据库支持。 ORM必须能够以最佳方式处理多个数据库查询。此外,多个连接字符串支持也必须轻松完成。
  3. 扩展性。如果我想添加一个查询,而不想混淆设计器文件;他们是一个脖子上的痛苦惹恼。

可能是这样。有任何想法吗?

+0

成本是一个问题? – 2009-06-08 14:56:07

+0

想一想......不。 – Graviton 2009-06-08 15:12:11

+0

说真的,去LLBLGen。要求#1杀死NHibernate(除非你是唯一的开发人员,或其他人都有经验),#2有效杀死Linq 2 SQL和数据集。 – 2009-06-14 03:14:35

回答

5

根据他的要求,LLBLGen是要走的路。请注意,LLBL和NH之间存在很大差异。 LLBL是ORM/Generator,你的实体将有很多预先生成的代码,并且它从数据库开始。所以如果拖放是你想要的,那么一定要用LLBL。

0

ADO .NET Entity Framework

这似乎符合每一项要求在一定程度上,虽然不能完全

+0

我等待第2版。我的印象是,EF的V1并没有准备好黄金时段。 – 2009-06-08 14:54:54

3

LLBLGen可能是一个选择。

它有最好的设计应用程序之一,它功能非常丰富。

0
  • 类型化数据集:0/3
  • 的LINQ to SQL:三分之一它可以做第3项。它可以做一些项目2:针对不同的查询多个连接字符串是没有问题的 - 但如果你想多个数据库在一个查询中,您必须使用视图或存储过程才能到达那里。第1项是胸围 - 如果您更改模式,您必须自己刷新设计器中的实体。
0

强类型数据集不应被视为OR/M工具。 (强类型)数据集只是数据库中数据的内存中表示形式(1:1表示形式)。

当您使用OR/M时,将数据库中存在的数据与内存中的业务对象(不必是数据库模型的1:1表示形式,可以包含其他数据逻辑等)。可能你可以看一下MS Entity Framework,但据我所知,NHibernate在功能,性能,抽象等方面仍然是更好的解决方案,并且你可以更好地控制它(但是,这可能会带来一点成本(在开发时)(没有拖放的设计,但是你可以从你的映射生成你的数据模型)

(延迟响应 - 网络故障...)