O / RM Choice (не зависит от linq) - PullRequest
0 голосов
/ 18 сентября 2009

Мне нравится использовать SQL, и я думаю, что у меня это хорошо получается.

И я попытался использовать Linq (с c # и Linq2Sql, похоже, что он больше похож на SQL с VB.Net), я чувствую, что это очень расстраивает, Вы не можете просто выполнить свой запрос без компиляции и выполнения кода. Я не очень хорошо разбираюсь в IQueryable, IEnumarable, IList и т. Д. И у меня есть сомнения относительно того, зачем вам использовать Linq, когда вы являетесь профессиональным пользователем SQL.

Но мне нужен какой-то O / RM, чтобы я мог писать свои тестовые коды, и мне нравится использовать POCO, а не наборы данных.

Таким образом, учитывая, что все в моей команде также являются экспертами по SQL (в основном MS SQL и, следовательно, T-SQL), и наслаждаемся программированием баз данных, какой O / RM вы бы рекомендовали. (Коммерческий или OpenSource не имеет значения, хорошая поддержка, учебные пособия и документация обязательны)

Нашей средой разработки будет C #, ASP.Net MVC и ExtJS.

В нашем приложении чуть более 1000 таблиц, которые мы собираемся перенести. Вы не поверите, сколько кода генерируется на нем ADO.Net Entity Framework. Я также немного попробовал Castle ActiveRecord, (я ничего не знаю о (N) Hibernate, и не было достаточно документации ActiveRecord, чтобы поддержать меня)

Ответы [ 6 ]

5 голосов
/ 18 сентября 2009

Не совсем ответ, но попробуйте LINQPad в течение недели, прежде чем отклонить LINQ как язык запросов ^^

Правила просты:

  • Найдите ярлык для SQL Management Studio в меню «Пуск». и переместить его в другое место.
  • Вместо него вставьте ярлык в LINQPad.
  • В течение следующей недели выполните все ваши специальные SQL-запросы, используя только LINQPad.
3 голосов
/ 19 сентября 2009

Лучшие ORM поддерживают Linq, так что это не будет проблемой в любом случае. LinqPad определенно поможет вам подняться по кривой обучения. Linq обладает значительными преимуществами, поэтому вам действительно следует попытаться покинуть свою зону комфорта T-SQL и принять ее.

С 1000 таблицами я бы определенно держался подальше от LinqToSql и EntityFramework, они просто не масштабируются эффективно. Вы также захотите что-то с достойной генерацией кода, если это возможно.

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

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

LLBLGen Pro - это коммерческий продукт, который, я думаю, наиболее точно соответствует вашим потребностям.

На SO и в других местах было много других обсуждений выбора .NET ORM:

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

1 голос
/ 18 сентября 2009

Но мне нужен какой-то O / RM, чтобы я мог писать свои тестовые коды, и мне нравится использовать POCO, а не наборы данных.

Тогда я бы настоятельно рекомендовал SubSonic [как будто иначе я не буду:)].

0 голосов
/ 18 сентября 2009

В мои дни на Java я использовал Hibernate, и с тех пор, как несколько лет назад я перешел на C #, я использовал nHibernate. Как и iBatis, он является портом от Java ORM и поэтому получает преимущества от функций, разработанных с обеих сторон. Документация тоже довольно хорошая. Вы даже можете найти там несколько книг.

0 голосов
/ 18 сентября 2009

Вот список инструментов: OR Mapping

0 голосов
/ 18 сентября 2009

Взгляните на iBatis , насколько я понимаю, это гораздо более тонкий слой вокруг SQL, чем большинство решений OR / M.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...