Я относительно новичок в .NET и почти год использую Linq2Sql, но мне не хватает некоторых функций, которые я ищу сейчас.
Я собираюсь запустить новый проект, в котором я хочу использовать ORM со следующими характеристиками:
- Он должен быть очень продуктивным, я не хочу иметь дело с уровнем доступа, чтобы сохранять или извлекать объекты из или в базу данных, но он должен позволять мне легко настраивать любой объект, прежде чем на самом деле передать его в базу данных; также это должно позволить мне легко работать с измененной схемой базы данных.
- Это должно позволить мне расширять объекты, сопоставленные с базой данных, например, добавлять к ним виртуальные атрибуты (виртуальные столбцы в таблицу).
- Он должен быть (по крайней мере, почти) агностиком базы данных, он должен позволять мне работать с различными базами данных прозрачным способом.
- Он должен иметь не так много конфигурации или должен быть основан на соглашениях, чтобы заставить его работать.
- Это должно позволить мне работать с Linq
Итак, знаете ли вы какую-нибудь ORM, которую я мог бы использовать? Благодарим вас за помощь.
РЕДАКТИРОВАТЬ Я знаю, что вариант - использовать NHibernate. Это является стандартом facto для приложений уровня предприятия, но также кажется, что это не очень продуктивно, потому что его глубокая кривая обучения. В другом случае, я прочитал в другом месте здесь, в SO, что он не хорошо интегрируется с Linq. Все это верно?