What is better ORM with these requirements

I am looking for a good ORM for an upcoming project.

The database will have from 1000 to 1200 tables, and it will be in SQL Server and Oracle, which will be used depending on the needs of customers. Also part of the project will work with WCF services. I need a designer or something like that. Good LINQ support. Allowable performance.

I tried DataObjects.Net, but it does not have a designer. We cannot code all these tables and do not use a code generator. And I'm not sure if DataObjects.Net supports database switching. I am also familiar with EF4, but it cannot support both databases together, and also manually switch the databases (changing the edmx file) is a pain in ... for maintenance work.

Thanks in advance.

Edit: It seems OpenAccess and LLBLGEN Pro have a designer, but I have no experience with them.

+6
c # orm
source share
5 answers

I will still vote for Entity Framework v4 - EF4.

Finally:

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

  • you can put them in your own class library and then load either, or another, or both if necessary, at runtime (for example, using the Managed Extensibility Framework or something of your own)

  • you can easily target these EDMX files in databases using connection strings - really not difficult at all

+7
source share

Given this information, I would suggest exploring NHibernate (and / or free-nhibernate ).

The element you need to learn is performance. It pretty much depends on the nature of your application. From 1000 to 1200 tables sounds massive, so I would definitely recommend running a series of significant performance tests (in addition to all other tests) before you finally decide on a solution.

Change In fact, nhibernate.info is the best starting place for NHibernate (thanks, Justin!).

+2
source share

OpenAccess can also do the job for you. You can use multiple .rlinq files and a build method for each database, as suggested in the Entity Framework. The benefit that I see for you will be the support that you will receive from Telerik, because you have a chance to strike a stone or two, developing a solution to such proportions.

+2
source share

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

http://nhibernate.info/

Here is an overview of high-level features (including LINQ):

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

There are several designers, including LLBLGen Pro:

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

NHibernate 3 is now in alpha, but I know that it is already used in production in several places. This may be the best way to upgrade to a new project.

+1
source share

I think you will need to choose your ORM and design tool separately. For example, go to EF and LLBLGEN, or NHibernate and CodeSmith, or NHibernate and LLBLGEN, etc.

+1
source share

All Articles