我将在我的项目中使用SQL Server,因为我想用它选择一个ORM . 我对NHibernate as an ORM有一些经验 . 事实上,鉴于该项目的性质(MySQL的后端),NHibernate确实是唯一的选择 .
我还使用了strongly typed dataset as my ORM,并且将Microsoft Access作为后端 . 我也有一些LINQ2SQL的经验 .
现在,我知道,所有路径都通往罗马;很多ORM都能很好地处理sql server . 但我想要最好的ORM
-
Development time . 也就是说,拖放设计器将我的实体类映射到数据库模式 . 因此,如果我更改模式,我的实体类会自动更新 .
-
Multiple database Support . ORM必须能够以最佳方式处理多个数据库查询 . 此外,还必须容易地进行多个连接字符串支持 .
-
Extensibility . 如果我想添加一个查询,而不想让设计师文件搞乱;他们是颈部疼痛的褶皱 .
那可能就是这样 . 有任何想法吗?
6 回答
根据他的要求,LLBLGen是最佳选择 . 请注意,LLBL和NH之间存在很大差异 . LLBL是ORM / Generator,您的实体将预先生成大量代码,并从数据库开始 . 因此,如果拖放是你想要的,那么一定要使用LLBL .
LLBLGen可能是您的选择 .
它拥有最好的设计师应用程序之一,而且功能非常丰富 .
ADO .NET Entity Framework?
它似乎在某种程度上满足了每个要求,尽管并不完美
类型化数据集:0/3
Linq To Sql:1/3它可以执行第3项 . 它可以执行第2项:不同查询的多个连接字符串没有问题 - 但如果您想在单个查询中使用多个数据库,则必须使用视图到达那里的存储过程 . 第1项是破产 - 如果更改架构,则必须在设计器中自行刷新实体 .
强类型数据集不应被视为OR / M工具 . (强类型)数据集只是数据库中数据的内存表示形式(1:1表示) .
当您使用OR / M时,您将“转换”数据库中存在的数据,内存中的业务对象(不必是数据库模型的1:1表示,可以包含其他逻辑等) . ..) .
也许你可以看看MS实体框架,但据我所知,NHibernate在功能,性能,抽象方面仍然是更好的解决方案,你可以更好地控制它(但是,这个可能有点成本(在开发时间) . (没有拖放设计,但你可以从你的映射生成你的数据模型) .
(迟到的反应 - 网络故障...)
我想建议DbBroker一个非常快速和轻量级的ORM库 .
它针对SQL Server进行了优化 .
DbBroker site