Как выбрать объектное реляционное отображение для .NET

Я просмотрел справку и не видел полный список... настолько вводящий по абсолютному адресу вокруг кода, кажется, что константы предупреждения компилятора все перечислены в: CodeGear\RAD Studio\6.0\sources\toolsapi\DCCStrs.pas

Поиск "Implicit_String_Cast_Loss" и Вы будете видеть постоянный sIMPLICIT_STRING_CAST_LOSS = 'DCC_IMPLICIT_STRING_CAST_LOSS';

я принял бы остальную часть строк DCC_xxx с соответствующим X_true / _ ложь / _, ошибка определяет, то, что Вы после.

справка Онлайн не была очень хороша начиная с Дельфи 7.

12
задан Ian Ringrose 18 June 2015 в 11:24
поделиться

3 ответа

Это основной вопрос / ответ Я указывал людям в отношении выбора .NET ORM:

NHibernate, Entity Framework, активные записи или linq2sql

Я поставил кучу вопросов типа "дубликат" в своем ответе на этот . Так что вы можете много почитать с разных точек зрения.

I ' выбираете ORM для системы .net?

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

  • Убедитесь, что он работает с поставщик вашей базы данных. SQL Server поддержка почти всегда доступны, но другие базы данных могут или могут не поддерживаться различными ORM (MYSQL кажется вторым по обычно поддерживаемая база данных).

  • Если вы хотите создать свою базу данных на основе ваших классов .NET вам нужно чтобы убедиться, что ваша ORM поддерживает это.

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

  • Вы должны убедиться, что у него есть функции, которые вам нужны: http://ayende.com/Blog/archive/2006/05/12/25ReasonsNotToWriteYourOwnObjectRelationalMapper.aspx

  • Учитывайте привязку к поставщику и как легко вы можете или не сможете избежать его (для базы данных поставщика и поставщика ORM).

  • Подумайте, сколько вы хотите потратить.

  • Подумайте, что вы хотите от кода поколение.

  • Подумайте, что вы хотите для модульного тестирования поддержка.

  • Подумайте, сколько времени вы хотите проводить исследования различных варианты.

  • Рассмотрим существующее сообщество вокруг ORM.

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

Как ORM решает указанные выше вопросы. которые обычно используются для .net

Единственная известная мне .NET ORM, которая удовлетворяет почти все потребности .NET-проекта (за исключением менее известных поставщиков баз данных), - это NHibernate. Он был протестирован с множеством «устаревших» баз данных в множестве различных сценариев.

9
ответ дан 2 December 2019 в 22:05
поделиться

ORM Battle
Целый веб-сайт, посвященный анализу и сравнению различных продуктов .NET ORM (Object Relational Mapping)!

Имейте в виду, что даже веб-сайт ORMBattle только сравнивает около 7 или 8 ORM (хотя те, которые он сравнивает, кажется, делает это довольно тщательно, но см. отказ от ответственности ниже).

Согласно веб-сайту SharpToolBox , доступно около 40 ORM! Список продуктов ORM и их описания на веб-сайте SharpToolBox должны дать вам хорошее начало. Посмотреть здесь: Результаты поиска SharpToolBox для объектно-реляционного сопоставления

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

Кроме того, помните, что любые сравнения между продуктами ORM вполне могут быть: ошибочен », поскольку нельзя всегда быть уверенным, что различные функциональные возможности разных продуктов ORM предназначены для одних и тех же целей. Комментарий AJ к этому ответу ссылается на сообщение в блоге автора Ayende Rahien , который описывает именно это явление, когда ORMBattle сравнивал NHibernate с другими ORM.

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

2
ответ дан 2 December 2019 в 22:05
поделиться

Я не разработчик .net, но вам стоит попробовать nHibernate . Это .net версия современного ORM для Java. Я уверен, что это отличное решение и для .net, поскольку ist делает сопоставление объектов довольно простым, но при этом достаточно мощным, чтобы сопоставить объекты практически с любой схемой sql.

0
ответ дан 2 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

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