Лучшие бесплатные инструменты ORM для использования с .NET 2.0/3.5

Я заинтересован в использовании пакета Object-Relational Mapping для предстоящего проекта. Этот проект начнется как приложение ASP.NET, но будет иметь множество функциональных возможностей, которые в конечном итоге будут совместно использоваться приложениями WinForms. Может ли кто-нибудь предложить хорошие, бесплатные пакеты ORM, которые хорошо работают в ситуациях ASP.NET и WinForms?

Ответ 1

SubSonic не столь обширен, как nHibernate; скорее, это прямой класс Active Record 1 на таблицу Data Access Layer.

Некоторые из функций - это инструмент запросов, возможность выполнения хранимых процедур и приложение для лесов в ASP.net. Вы можете работать и работать в течение 30 минут или меньше, с крошечной кривой обучения и минимальной конфигурацией в файле Config.app.

Ответ 2

Я всегда рекомендую Castle ActiveRecord. Это слой поверх NHibernate. Он отлично работает в обеих средах, о которых вы упомянули.

Ответ 3

nHibernate работает для меня, но все зависит от того, что вам нужно. Многие люди не хотят идти по всему DDD и модулю тестирования. Им просто нужно что-то простое сопоставить свою базу данных с объектами, чтобы сделать код немного приятнее. Если это случай, то посмотрите на Subsonic, а также, возможно, легче начать.

Ответ 4

Я предпочитаю Fluent NHibernate, который позволяет создавать сопоставления в сильно-типах С#, а не использовать обычные файлы NHibernate XML. Он также позволяет вам смешивать и сопоставлять (вы можете иметь сопоставления в коде и в XML).

Там хорошая статья о начале работы здесь.

Ответ 5

Попробуйте, Subsonic

и вы также можете использовать ORM Linq2Sql.

Ответ 6

NHibernate

Ответ 7

Я не исследовал ActiveRecord просто из-за того, что в соответствии с независимой службой он не работает так быстро, как многие другие ORM, и не имеет полной реализации Linq.

DataObjects.NET требует, чтобы все ваши сущности были получены из специальных классов, но взамен этого вы заслуживаете респектабельной производительности и хороших свойств, таких как поставщики памяти в памяти и наиболее полная реализация Linq.

Я провожу дневной просеивание через исходный код DBLinq. Я считаю, что он незрелый (многие функции Linq-To-SQL просто не реализованы), и я бы не рекомендовал его для производственных систем.

Итак, тогда... если вы ищете бесплатный, быстрый, открытый исходный код, совместимый с LINQ ORM, тогда DataObjects.NET - довольно безопасная ставка.

Ответ 8

Оформить заказ XmlDataMapper простой бесплатный ORM (лицензия LGPL), который оставляет низкий объем памяти по сравнению с другими гигантами. Примерный проект должен быть достаточно хорошим, чтобы начать работу.

Чтобы интегрировать XmlDataMapper все, что вам нужно сделать, это 4 маленьких шага

  • Создание бизнес-объекта/DTO для таблиц
  • Создайте XML файл с информацией о сопоставлении между таблицей и DTO.
  • Укажите DTO и xml файл в конфигурации.
  • Просто вызовите DTOConverter.Convert(dataReader) и другие подобные методы, чтобы преобразовать вашу базу данных в DTO/Business Entity.

Ответ 9

попробуйте dbFrameIT, доступный из http://www.dbframeit.com. Он очень прост в использовании и предлагает бесплатную персональную лицензию.

Ответ 10

Я использую SubSonic около года для нескольких приложений ASP.NET, а также для приложения WinForms. С этим очень легко начать, и я еще не был "расписан в угол", выбирая его - почти всегда есть способ сделать то, что вам нужно, обычно легко. Я оцениваю, что он сбрил 30% от нашего времени разработки. Не настоящий инструмент ORM, но обеспечивает большую производительность.

Ответ 12

Я использую аннотации NHibernate и NHibernate. Он работает хорошо - без файлов сопоставления (entity.xml). К сожалению, вы должны в Log4net, для которого требуется крошечный xml файл.

Ответ 13

Habanero, отличный и мощный ORM. Он бесплатный (лицензия LGPL), работает с .net 2.0 (это очень важно для меня) и имеет мощные инструменты для генерации модели из базы данных (с пользовательскими именами классов и свойств, выборочной проверкой и т.д.).