Путаница в выборе подходящего ORM? - PullRequest
2 голосов
/ 28 января 2012

Я использую ASP.NET с базой данных informix.

Я использую набор письменных классов для обработки соединений, операций CRUD, транзакций и т. Д. ...

Теперь,Я чувствую, что эти классы не лучший выбор, они менее эффективны, занимают много времени и имеют много недостатков.


Я хочу использовать ORM, но я не знаю, как выбрать тоткоторая подходит для моих веб-приложений (ASP.NET, Informix).

Пожалуйста, помогите выбрать удобный ORM.

Я запутался в nHibernate, Entity Framework, LINQ To SQL и OpenAccess (Telerik Component).

Примечание: я буду использовать Visual Studio 2012, поэтому я хочу недавнее сравнение.

Ответы [ 6 ]

10 голосов
/ 28 января 2012

Я бы действительно предложил Entity Framework, так как это нативный фреймворк .NET. Здесь указано, что для EF доступен поставщик Informix.

5 голосов
/ 31 января 2012

Думали ли вы об использовании Fluent NHibernate? Для этого есть множество статей в Интернете и множество статей о ТАК !! Вот одна из таких статей: преобразование в менеджер сеансов Fluent NHibernate .

РЕДАКТИРОВАТЬ:

Я думал о твоей ситуации, и я скажу тебе, как я обычно думаю. Во-первых, я подумаю о том, что именно я хочу, чтобы мой слой Gateway делал (именно этот слой я использую для общения со средой персистентности). Теперь большинство скажет: я хочу, чтобы он говорил с базой данных, или я хочу вставить и обновить материал. Но недавно я обнаружил, что этого недостаточно! На полпути через кодирование слоя шлюза с учетом этих вопросов я внезапно понял, что хочу сделать что-то немного другое, и бум, я не мог сделать это с помощью NHibernate очень легко. Итак, я пошел на несколько уступок и пошел с Linq-ToSql, поскольку он поддерживал требование более высокого приоритета по сравнению с некоторыми тонкостями NHibernate.

Теперь причина моей истории в том, что NHibernate предоставляет несколько замечательных маленьких функций, таких как Result Transformation. Я могу посмотреть на мою базу данных с массой объединенных таблиц, дать псевдоним для каждого поля и с прекрасным преобразователем результата, взрыв, он мгновенно превращается в мое DTO. Не поймите меня неправильно, у Linq-To-Sql есть нечто подобное с автоматически сгенерированными классами. Но я не хочу, чтобы они были видны за пределами слоя шлюза (другой разговор). В равной степени Linq-To-Sql легко обрабатывает транзакции - я думал, что NHibernate не очень хорошо справляется!

Итак, все сводится к следующему: каковы мои Точные требования на уровне моего шлюза / хранилища и какие технологии совместимы с моей средой персистентности ?! И теперь я могу думать о том, какую технологию я хочу использовать.

Я понимаю, что, возможно, я не ответил на ваш вопрос как таковой, но я надеюсь, что это дало вам возможность подумать!

Удачного кодирования, Cheers,
Крис.

5 голосов
/ 31 января 2012

http://www.ibm.com/developerworks/data/library/techarticle/dm-0903linqentity/

Приведенная выше ссылка предоставит вам ссылки для загрузки поставщика informix, а также проведет вас через пошаговый процесс использования поставщика informix в сочетании с Entity Framework.

Подробнее о Entity Framework http://msdn.microsoft.com/en-us/library/aa697427(v=vs.80).aspx

Проще говоря, после настройки вы сможете создавать классы, которые сопоставляются с вашими структурами данных informix, и выполнять запросы с использованием linq.EF довольно мощный и полезный инструмент, я рекомендую его.

3 голосов
/ 01 февраля 2012

Мой голос за Fluent NHibernate - вы получаете возможность настройки и кросс-платформенное использование Hibernate, но вы избавляетесь от необходимости использовать массивные файлы конфигурации XML.Entity Framework хорош, но мне не нравятся инструменты, которые слишком сильно зависят от поддержки IDE / Designer.

Счастливое кодирование,

Мел

2 голосов
/ 03 февраля 2012

Я бы порекомендовал Fluent NHibernate. Лично я вижу, что он используется в большем количестве компаний, чем любая другая платформа ORM.

Я использовал Entity Framework, как на первом этапе проектирования, с серьезными недостатками блокировки, так и на уровне кода, что нормально.

Я отправил ответ на Code Review , когда кто-то задавал почти идентичный вопрос.

1 голос
/ 06 февраля 2012

Думаю, лучше сначала прочитать эту книгу: http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-Design-Patterns.productCd-0470292784.html

...