Просто задавшись вопросом, что everyones мысли, на какой ORM использовать для Azure SQL?
Я - довольно удобный LINQ-SQL использования, и я полагаю, что возможно получить его работающий с Azure SQL. Однако от моего понимания (исправляют меня, если я неправ), никакое дальнейшее совершенствование не будет сделано Linq-SQL в будущих выпусках платформы.NET?
С другой стороны, существует платформа объекта..., и далее далеко от дома от Microsoft Camp NHibernate.
Идеально, любые дополнительные сделанные предложения должны быть бесплатными или с открытым исходным кодом. Я видел ORM Telerik, но это, конечно, коммерческий продукт.
Я могу получить определения/преимущества каждого ORM сам путем выполнения поиска Google, но я просто интересовался мнениями народов, относительно которых ORM, кажется, работает лучше всего на них (даже если это не ни одно из вышеупомянутого),
В настоящее время мы используем NHibernate в Azure и находим его довольно хорошо .
Поскольку мы используем архитектуру s # arp , чтобы предоставить большую часть кода для NHibernate и Dependency Injection, нам удалось довольно быстро запустить проекты с хорошей прочной основой. Все сказано, что это было довольно безболезненно, но при первом запуске с NHibernate может возникнуть некоторая крутая кривая обучения.
Я не уверен, знаете ли вы о Fluent NHibnerate - http://fluentnhibernate.org - но это отличный инструмент, который автоматически отображает ваши бизнес-объекты в вашу базу данных. Конечно, его можно настроить под любое поведение, которое вам нужно.
DataObjects.Net поддерживает SQL Azure. Он доступен под GPL (но не под LGPL - т.е. если GPL для вас слишком строгий, вы должны приобрести коммерческую лицензию).
Проверьте 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 как просто вариант - если вы настроили свой уровень доступа к данным для использования шаблонов Unit of Work и Repository, а затем используйте свой любимый контейнер Inversion of Control для внедрения конкретной реализации, тогда вы получите немного больше работы по настройке, но гораздо больше свободы в долгосрочной перспективе. Кого действительно волнует, где находятся данные или как вы продвигаетесь через определенный уровень, важно то, что вы с ними делаете
, вот что я считаю ...
Тоби
Джейми,
Как и Тоби, я успешно использую EF. Очень рекомендую. Обратите внимание, что когда я публикую это, мне пришлось сгенерировать модель из локальной версии нашей схемы. Это не сделка по ставкам, но стоит упомянуть. Ожидайте, что это изменится в будущем.
Ян