Мне нужно тщательно выбирать .NET ORM для приложения N-уровня. Это означает, что у меня будет сервер (служба WCF), который предоставляет данные и клиент, который отображает его. ORM должен поддерживать все связанные с этим проблемы сериализации гладко - объекты или коллекции объектов или что-то должно проходить через границы процесса. В идеале использование в многопроцессорной среде должно быть таким же, как в одном процессе.
Критерии:
- Гибкость сопоставления схемы db для объектов (предпочтительно)
- Простота использования
- Свободный, открытый источник (предпочтительный)
- Должен быть подходящим для N-уровневых (многопроцессорных многодоменных приложений)
- Производительность
- Инструменты для интеграции с Visual Studio (желательно)
- Тестируемость
- Принятие, наличие документации
- Поддерживается широкий диапазон RDBMS (предпочтительнее, мы используем MSSQL, но я не хотел бы привязываться к нему).
- DB agnostic - разные БД, тот же API