Вероятность изменения вашего ORM в течение проекта довольно низка. Существует очень хороший шанс, что любые ваши усилия по обеспечению возможности переключения вашего ORM в конечном итоге будут потрачены впустую. Вы должны взвесить небольшую вероятность изменения ORM против дополнительных усилий, чтобы сделать возможным изменение ORM.
Чтобы ответить на ваши вопросы:
- Нет
- Обычно вы меняете ORM, если инструмент, который вы используете, не удовлетворяет какую-либо существенную потребность. Я не могу придумать ни одного примера, где это имело бы смысл, - обычно вы можете обойти любые проблемы, подобные этим.
В конце дня я просто убедился бы в том, что я выбрал ORM, который будет работать для меня (не может ошибиться с чем-то вроде NHibernate), и убедился, что ваш код слабо связан, что должно гарантировать, что ваши данные код доступа изолирован. Это хорошо не только с точки зрения ремонтопригодности, но и для тестируемости.