Какой ORM я должен использовать вместо Linq для Sql?

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

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

РЕДАКТИРОВАНИЕ: документация C# относительно "этого" указывает на еще одно использование помимо двух, которые я упомянул для "этого" ключевого слова - для объявления индексаторов

РЕДАКТИРОВАНИЕ: @Juan: Ха, я не вижу несоответствия в своих операторах - существует 3 экземпляра, когда я использовал бы "это" ключевое слово (как зарегистрировано в документацию C#), и те - времена когда Вы на самом деле потребность это. Засовывать "это" перед переменными в конструкторе, когда нет никакого продолжения затенения, является просто тратой нажатий клавиш и пустой тратой моего времени при чтении его, это не предоставляет преимущества.

5
задан Venemo 4 November 2009 в 21:58
поделиться

9 ответов

Linq to SQL хорош (если вы не будете использовать ничего, кроме SQL Server). Не беспокойтесь о Linq to Entities (EF). Он сломан (далек от зрелости) - на очень многих уровнях.

Я бы сам выбрал NHibernate - отличное отображение сущностей и поддержка нескольких платформ БД. И очень хорошо испытанный ORM.

7
ответ дан 18 December 2019 в 09:08
поделиться

Я бы порекомендовал Entity Framework v4.0. В отличие от первой неудачной попытки ORM с EF v1.0, версия, выходящая с .NET 4.0, действительно потрясающая. Microsoft улучшила EF на всех уровнях и напрямую отреагировала на предложения многих основных сторонников сообщества ORM. Я получил прямую информацию по электронной почте в Microsoft по нескольким вопросам, связанным с EF, включая эффективность и достоверность сгенерированного SQL, многоуровневую историю и визуальный дизайнер.

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

4
ответ дан 18 December 2019 в 09:08
поделиться

На этот вопрос был задан и дан ответ много раз раньше:

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

1
ответ дан 18 December 2019 в 09:08
поделиться

поскольку это проект предназначен для обучения с использованием Nhibernate, его действительно стоит потратить на изучение :)

1
ответ дан 18 December 2019 в 09:08
поделиться

Я бы сказал, что NHibernate + FluentNhibernate очень быстро поможет вам начать работу. Лучшее в FluentNhibernate - это то, что вы можете настроить его всего за несколько строк, и он автоматически сопоставит ваши объекты с вашей базой данных.

Если вы хотите что-то более легкое в конфигурации, вы можете проверить out Subsonic

2
ответ дан 18 December 2019 в 09:08
поделиться

Что ж, я бы проголосовал, прежде чем идти по маршруту ORM, также проверьте полноценную OODBMS.

db4Objects от Versant определенно заслуживает внимания, это быстро, его смехотворно проста в использовании и довольно зрелая.

Изменить: обратите внимание, db4Objects также поддерживает Linq.

1
ответ дан 18 December 2019 в 09:08
поделиться

Я согласен с вами в выборе второго варианта. Не потому, что я знаю, что производительность в этом случае лучше, а потому, что вы сказали, что хотите иметь хорошо спроектированную систему. Если вы используете LINQ to SQL, проблема, с которой вы столкнетесь, заключается в том, что классы, которые вы будете генерировать с помощью перетаскивания LINQ, будут сильно зависеть от схемы вашей базы данных и структуры вашей таблицы. Каждый раз, когда вы вносите изменения в структуру своей таблицы, вам придется повторно создавать классы LINQ. Это нежелательно с точки зрения хорошей архитектуры. Вам следует рассмотреть возможность использования NHibernate с asp.net mvc. NHibernates предоставляет вам возможность отображать свойства вашего бизнес-объекта с полями таблицы базы данных через файл xml. Это добавляет дополнительный уровень абстракции, при котором ваши бизнес-объекты не зависят напрямую от структуры вашей таблицы. На codeplex есть хороший проект, использующий NHibernates. Вот URL этого проекта http://jscportal.codeplex.com/ . Это очень чистый портал CMS, созданный с использованием asp.net mvc и NHibernates. Также этот проект даст вам представление о создании хорошего дизайна для вашего приложения. Всего наилучшего!

Также этот проект даст вам представление о создании хорошего дизайна для вашего приложения. Всего наилучшего!

Также этот проект даст вам представление о создании хорошего дизайна для вашего приложения. Всего наилучшего!

1
ответ дан 18 December 2019 в 09:08
поделиться

Вы видели S # arpArchitecture ? Это структура, основанная на NHibernate и ASP.NET MVC, на которой вы можете создавать свои приложения.

Что ж, если вы собираетесь создавать все с нуля (возможно, чтобы узнать об архитектуре), вы можете взглянуть на S # arpArchitecture исходный код для вдохновения.

1
ответ дан 18 December 2019 в 09:08
поделиться

LLBLGen Pro просто лучший

0
ответ дан 18 December 2019 в 09:08
поделиться
Другие вопросы по тегам:

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