Подтвердить что ты не робот

Какой ORM использовать с SQL Azure?

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

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

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

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

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

4b9b3361

Ответ 1

На данный момент мы используем NHibernate на Azure и находим это довольно хорошо.

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

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

Ответ 2

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

Ответ 3

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

Не ошибитесь - EF4.0 светлее, чем предыдущие версии EF, и продвигает EF в качестве истинного конкурента на рынке ORM.

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

Ответ 4

Проверьте NHibernate. Вероятно, верхняя часть линии прямо сейчас.

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

Ответ 5

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

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

Ответ 6

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

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

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

Тоби

Ответ 7

Джейми,

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

Ян