Какую ORM использовать с SQL Azure? - PullRequest
20 голосов
/ 12 марта 2010

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

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

В качестве альтернативы, существует структура сущностей ... и дальше от Microsoft Camp есть NHibernate.

В идеале любые дополнительные предложения должны быть бесплатными или с открытым исходным кодом. Я видел Telerik's ORM , но это, конечно, коммерческий продукт.

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

Ответы [ 7 ]

6 голосов
/ 12 марта 2010

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

5 голосов
/ 22 марта 2011

Я недавно полюбил подход Code Entry в Entity Framework 4.0 к ORM / сохранению данных.

Не ошибитесь - EF4.0 на несколько лет впереди предыдущих версий EF и PropelsEF стать настоящим конкурентом на рынке ORM.

Прочитайте первый демонстрационный скрипт EF-кода Hanselman из PDC 2010 или обзор Скотта Гатри Code First :)

5 голосов
/ 12 марта 2010

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

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

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

1 голос
/ 24 марта 2010

Джейми,

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

Ian

1 голос
/ 15 марта 2010

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

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

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

Toby

1 голос
/ 12 марта 2010

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

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

1 голос
/ 12 марта 2010

Проверьте NHibernate. Наверное, сейчас вершина линии.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...