开发者

What is best ORM with these requirements [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 11 years ago.

I'm looking for a good ORM for an upcoming project.

The database will have around 1000 to 1200 tables, and it will be in Both SQL Server and Oracle, which will be used depending of customers enterprise needs. Also a few part of the project will work with WCF services. I want a designer or something like that.开发者_开发知识库 Good support of LINQ. Acceptable performance.

I have tried DataObjects.Net but it doesn't have any designer. We can't code all that tables nor use code generator. And I'm not sure if DataObjects.Net supports switching database. Also I'm familiar with EF4 but it can't support both databases together, and switching databases manually(modifying the edmx file) is such a pain in ... for maintenance job.

Thanks in advance.

Edit: Seems OpenAccess and LLBLGEN Pro have designer but I don't have experience with them.


I would still vote for Entity Framework v4 - EF4.

After all:

  • you can have multiple EDMX files, no problem - one for SQL Server, one for Oracle

  • you could put those into their own class library, and then load or, or the other, or both, if needed, at runtime (e.g. by using the Managed Extensibility Framework or something of your own)

  • you can easily target those EDMX files at databases using connection strings - really not hard at all


OpenAccess can also do the job for you. You could use the multiple .rlinq files and assembly-per-database approach as suggested with Entity Framework. The benefit I see for you would be the support you will get from Telerik as there is quite a chance for you to hit a rock or two while developing a solution of such proportions.


Given this information I would suggest to look into NHibernate (and/or fluent-nhibernate).

The item you will have to look into is performance. This depends heavily on the nature of your application. 1,000 to 1,200 tables sounds massive, so I'd recommend to definitely run a number of meaningful performance tests (in addition to all the other tests) before you finalize the decision.

Edit: In fact the better starting place for NHibernate is nhibernate.info (Thanks, Justin!).


I think you'll need to pick your ORM and designer tool separately. For example, go with EF and LLBLGEN, or NHibernate and CodeSmith, or NHibernate and LLBLGEN, etc.


I would also suggest NHibernate but the place to research it is definitely NHForge:

http://nhibernate.info/

Here is the high-level feature overview (including LINQ):

http://nhibernate.info/doc/nhibernate-features.html

There are a few designers available, including LLBLGen Pro:

http://nhibernate.info/doc/commercial-product-ecosystem.html

NHibernate 3 is in alpha now but I know that it is already being used in production a few places. That might be the best way to go for a new project.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜