I need to choose carefully .NET ORM for N-tier application.
That means, the I will have the server (WCF service), which exposes the data, and client, which displays it.
The ORM should support all the related serialization issues smoothly – the objects or collections of objects, or whatever must travel across process boundaries. Ideally, the usage in multiprocess environment should be the same as in single process.
The criteria are:
- Flexibility of db schema mapping to objects (preferred)
- Ease of use
- Free, open source (preferred)
- Must be suitable for N-tier (multi-process multi-domain applications)
- Performance
- Tools to integrate with Visual Studio (preferred)
- Testability
- Adoption, availability of documentation
- Wide range of RDBMS supported (preferred; we are using MSSQL, but I wouldn’t like to be tied to it)
- DB agnostic – different DBs, same API
I would recommend Entity Framework v4. It has improved beyond dramatically since v1, and supports everything you require except being open source: