Некоторые предложения, на который.NET ORM для рассмотрения изучения

Вам необходимо разрешить «Полный доступ к диску» для приложений, которым требуется доступ к этому пути:

enter image description here

Это часть изменения конфиденциальности в macOS Mojave.

7
задан cletus 24 February 2009 в 23:16
поделиться

9 ответов

Я рекомендовал бы nhibernate - так как это - открытый исходный код и имеет очень активную общественную справку, легко добраться. Большой начальной точкой является FAQ NHibernate, она колеблется от сообщения для новичков к очень усовершенствованным понятиям. Сразу возьмитесь за дело путем чтения, и следующее Готовят систему к NHibernate, и первый NHibernate основывал приложение.

Все работодатели, что я работал на используемый NHibernate для ORM в.NET и В спящем режиме для ORM в Java - таким образом, необходимо извлечь выгоду значительно из изучения NHibernate.

13
ответ дан 6 December 2019 в 06:25
поделиться

Много обсуждений этой темы на Переполнении стека:

Какое объектное решение для картопостроителя Вы рекомендовали бы для .NET?

Какова лучшая парадигма доступа к данным для масштабируемости?

Платформа персистентности?

И EF и Nhibernate считают полезными для крупных проектов. Некоторые основные проблемы, выраженные о EF, являются отсутствием ленивого незнания загрузки/персистентности. Nhibernate имеет более крутую кривую обучения и требует большего количества ручной конфигурации.

2
ответ дан 6 December 2019 в 06:25
поделиться

SubSonic от Rob Connery является "швейцарским ножом" ORM на основе ActiveRecord. Можно быть продуктивными с ним через 30 минут. Предупредите, это не на уровне NHibernate в параметрах конфигурации условий и т.д. Это чрезвычайно продуктивно, и код является очень чистым. Мы используем его на большинстве наших проектов.

4
ответ дан 6 December 2019 в 06:25
поделиться

Я сказал бы, идут с NHibernate. Это широко используется, имеет много учебных руководств и изучения ресурсов и активной contrib группы. Это подобно для Спящего режима, что означает любые навыки, которые Вы осваиваете на NHibernate.NET, являются портативными к Java. Win-win-win-etc.:)

2
ответ дан 6 December 2019 в 06:25
поделиться

Я упоминание второго David Robbins о дозвуковых. Одно крушение, на которое я укажу, хотя то, что документация менее, чем прекрасна. Действительно довольно просто работать с, просто необходимо знать, как сделать это.

Я предполагаю еще одну вещь, которую это стоит упомянуть: какие базы данных необходимо поддерживать? Если бы необходимо работать с чем-нибудь кроме SQL Server, я не использовал бы LINQ. Я мог быть неправ в этом, но в прошлый раз я проверил, там не хорошо работает поддержка баз данных кроме SQL Server.

Последняя вещь, которую я упомянул бы, состоит в том, что Вы не должны выбирать всего один. Я использовал nHibernate, LINQ к SQL, и Дозвуковой в том же проекте с достойным успехом (хотя я советовал бы, чтобы избежать что если вообще возможный). Мой совет состоит в том, чтобы провести определенное время со всеми ними и изучить то, что является лучшим о каждом.

Вот то, что я сказал бы о каждом:

  • LINQ к SQL - очень легкий встать и работающий с. Но если Вы хотите использовать что-то другое, чем SQL Server, Вы - в значительной степени СОЛЬ.
  • NHibernate - Это является, вероятно, самым мощным из всего ORMs, и он поддерживает большую часть RDBMSes, но это может быть утомительно для работы, с тем, поскольку нет большого количества действительно хороших свободных генераторов кода для работы с (не может выступить за несвободные хотя).
  • SubSonic - Хороший компромисс между NHibernate и LINQ к SQL. Это не поддерживает столько же RDBMSes сколько NHibernate, но это работает с большинством из тех, Вы встретились бы в деловом мире.

TL; DR: NHibernate, если Вы должны иметь большой контроль базой данных или потребностью поддерживать что-то неясное. SubSonic, если необходимо работать с чем-то другим, чем SQL Server. LINQ к SQL, если Вы просто хотите работать против SQL Server.

2
ответ дан 6 December 2019 в 06:25
поделиться

Так как Вы используете.NET 3.5, я рекомендую LINQ.
LINQ reuires только, что IEnumerable и интерфейсы IQueryable реализованы.
Это означает, что не ограничено реляционными данными.
Alse видят статью ORM в.NET 3.5

1
ответ дан 6 December 2019 в 06:25
поделиться

Почему предел самостоятельно просто тому при изучении? Почему бы не плескаться со всеми ними и видеть которые чувство лучше всего Вам? Затем можно начать глубокое погружение в тех технологиях и вытащить больше из них.

Лично, я начал бы с LINQ к SQL, потому что это, так упадите замертво легкие. Игра вокруг с ним только для привыкания к идее того, как может использоваться ORM. Вы будете удивлены тем, насколько простой это и как легкий это должно начать, и затем Вы, вероятно, столкнетесь со многими болевыми точками, которые обманывают некоторых людей к Платформе Объекта.

После того как Вы используете Платформу Объекта немного, Вы или будете удовлетворены ею, или Вы зададитесь вопросом, что грандиозное предприятие с nHibernate и некоторыми из других упомянутых в связанных вопросах.

Именно в той точке, по-моему, Вы будете самыми запущенными, чтобы быть успешными с чем-то как nHibernate, который может быть жестким для изучения как первый набег в ORM-землю.

Так или иначе я не предписываю, "какой должен я пробовать" философскую школу. Судите их всех, говорю я.

2
ответ дан 6 December 2019 в 06:25
поделиться

Для свободного и маршрута с открытым исходным кодом NHibernate довольно трудно разбить. Это - сформировавшийся ORM с очень активным сообществом и большим количеством поддержки. Существует начальная кривая обучения там с NHibernate, однако, я думаю, что это определенно стоит усилия, которое Вы могли бы инвестировать в него.

Если Вы хотите остаться в мире.NET Micrsoft, LINQ является большой технологией для изучения, и не только LINQ2SQL (который, как Вы говорите, не полноценный ORM так или иначе), поскольку LINQ может быть применен к объектам, XML и в основном чему-либо, что это - IEnumerable/IQueryable.

Для будущего я рекомендовал бы Платформу Объекта (снова в мире Microsoft). Было несколько страшных звучащих объявлений от команд LINQ2SQL в Microsoft, которые, кажется, предполагают, что все будущие усилия по разработке будут приложены к Платформе Объекта, а не LINQ2SQL. Существует определенное количество перекрытия тех технологий так или иначе. Конечно, я не полагаю, что LINQ (говорящий обычно) уходит в ближайшее время, но я остерегался бы инвестирования в течение длительного срока в LINQ2SQL. Платформа объекта является все еще относительно новой, и при активной разработке, поэтому ожидайте видеть, что EF назревает в ближайших месяцах/годы.

Так, прямо в данный момент LINQ2SQL является большим, и можно встать и работающий с ним вполне быстро, обязательно не имея необходимость погрузиться во внутренние работы его (т.е. деревья выражений и т.д.), но для будущего, я рекомендовал бы Объекту Framework/NHibernate, поскольку я верю этим двум, ORM's те будет в употреблении большинства за следующие несколько лет большинством команд разработчиков.NET.

Конечно, однако, существует несметное число различных решений ORM там, и я сомневаюсь, что любой из них будет единым решением, таким образом, действительно необходимо будет исследовать каждого из них и видеть, который наиболее подходит для определенного проекта, что Вы продолжаете работать.

1
ответ дан 6 December 2019 в 06:25
поделиться

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

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

  1. Создать бизнес-объект / DTO для таблиц
  2. Создать XML-файл с информацией о сопоставлении между таблицей и DTO.
  3. Укажите DTO и XML-файл в конфигурации.
  4. Просто вызовите DTOConverter.Convert (dataReader) и другие подобные методы, чтобы преобразовать запись базы данных в DTO / Business Entity
1
ответ дан 6 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: