Вопрос

Просто интересно, что все думают о том, какой ORM использовать для SQL Azure?

Мне довольно комфортно использовать LINQ-to-SQL, и я считаю, что его можно заставить работать с SQL Azure.Однако, насколько я понимаю (поправьте меня, если я ошибаюсь), в будущих выпусках платформы .NET никаких дальнейших улучшений в Linq-to-SQL не будет?

Альтернативно, существует структура сущности...и дальше от Microsoft Camp находится NHibernate.

В идеале любые дополнительные предложения должны быть бесплатными или с открытым исходным кодом.Я видел ОРМ Телерика но это, конечно, коммерческий продукт.

Я могу сам получить определения/преимущества каждого ORM, выполнив поиск в Google, но меня просто интересовало мнение людей о том, какой ORM, по-видимому, работает для них лучше всего (даже если это не один из вышеперечисленных)

Это было полезно?

Решение

В настоящее время мы используем NHibernate в Azure и считаем его довольно хорошим.

Потому что мы используем с#арп архитектура Чтобы предоставить большую часть кода для NHibernate и Dependency Injection, нам удалось довольно быстро запустить проекты с хорошей прочной основой.В общем, это было довольно безболезненно, но при первом запуске NHibernate может оказаться довольно крутым процессом обучения.

Я не уверен, что вы знаете о Fluent NHibnerate – http://fluentnhibernate.org - но это отличный инструмент, который автоматически сопоставляет ваши бизнес-объекты с вашей базой данных.Конечно, его можно настроить так, как вам нужно.

Другие советы

DataObjects.Net поддерживает SQL Azure.Он доступен под лицензией GPL (но не LGPL, т.е.если GPL для вас слишком строга, вам необходимо приобрести коммерческую лицензию).

Недавно я влюбился в подход Entity Framework 4.0 «Code First» к ORM/сохранению данных.

Не заблуждайтесь: EF4.0 на много лет опережает предыдущие версии EF и делает EF настоящим конкурентом на рынке ORM.

Прочтите Гензельмана. Первый демонстрационный сценарий кода EF из PDC 2010 или Прохождение Скоттом Гатри Code First :)

Проверьте NHibernate.Наверное, сейчас на пике популярности.

В противном случае хороший ресурс всегда http://www.ormbattle.net/

Я использую Linq-to-SQL со своей базой данных SQL Azure.У меня есть простая модель «один к одному» между моими классами и таблицами базы данных, поэтому это самое простое решение, которое работает идеально (за исключением нескольких сбоев SQL Azure).

А Entity Framework против LINQ to SQL вопрос ответит на этот вопрос для вас.

Я довольно успешно использую Entity Framework 1.0, и я почти уверен, что 4.0 будет еще лучше, особенно благодаря поддержке POCO (поэтому вы с самого начала свободны от объектов, связанных с контекстом).В любой версии поддержка LINQ имеет огромное значение, как только вы ее освоите.

Но я бы сказал, что вы должны рассматривать любой ORM как просто вариант - если вы настроите свой уровень доступа к данным для использования шаблонов единиц работы и репозитория, а затем используете свой любимый контейнер Inversion of Control для внедрения конкретной реализации, тогда вы получите вам потребуется немного больше работы по настройке, но гораздо больше свободы в долгосрочной перспективе.Кого действительно волнует, где находятся данные или как они проходят определенный уровень, важно то, что вы с ними делаете.

это я считаю...

Тоби

Джейми,

Как и Тоби, я успешно использую EF.Я очень рекомендую это.Обратите внимание: когда я публикую это, мне пришлось создать модель на основе локальной версии нашей схемы.Это не тендерная сделка, но о ней стоит упомянуть.Ожидайте, что это изменится в будущем.

Ян

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top