Любые Entity Framework-подобные ORM для .NET 2.0? (DB-первых!) - PullRequest
2 голосов
/ 23 июля 2011

Из-за особенностей моего текущего проекта я должен продолжать использовать .NET 2.0.Есть ли какие-либо Entity Framework-подобные ORM для .NET 2.0?

  1. Я абсолютно в порядке с интерфейсом не LINQ.Синтаксис вроде users.Where(u => u.Age > 100).Count() в порядке.
  2. Мне нужно использовать подход, основанный на использовании БД: у меня уже есть БД с 30 таблицами, и я просто рассматриваю способы упрощения работы с ней.Итак, я был бы очень признателен, если бы можно было сгенерировать требуемый код из существующей БД.
  3. Также нормально, если он не сгенерирует весь необходимый код, но предоставит способ описания структуры БД вручную (используя атрибуты, например).По сути, я просто хочу иметь возможность создавать более или менее сложные запросы без использования реального SQL, SqlParameter s и DataSet s / DataTable s со всеми этими int.Parse(row[12].ToString()) (это устаревший код, который я пытаюсьизбавиться от)
  4. Кроме того, было бы замечательно, если бы я был в состоянии "переопределить" некоторые конкретные "запросы" вызовами существующих хранимых процедур.

Наиболееважно п.2 - БД первая.Есть ли что-нибудь в этом роде?Или я абсолютно не прав с моими мыслями?Буду признателен за любые идеи.

Ответы [ 2 ]

5 голосов
/ 23 июля 2011

Ваш лучший вариант - проверить NHibernate . Многие (большинство?) Считают, что он более функциональный и мощный, чем EF 4.1, плюс здесь много ресурсов по стеку и остальным ресурсам, которые помогут вам в процессе разработки.

Обязательно изучите Свободный NHibernate , чтобы упростить сопоставление вашей базы данных с объектами C #. Альтернатива редактирования XML-файлов сложна, неуклюжа и требует много времени.

Обратите внимание, что вам может необходимо использовать более старую, но все еще полностью функциональную версию NHibernate, совместимую с .NET 2.0 (я думаю, но я не уверен, что это требуется для более свежих версий). NET 3.5).

2 голосов
/ 23 июля 2011

Существует множество доступных ORM, но некоторые из них коммерческие ( LLBLGen Pro ). Хороший выбор для вас, вероятно, NHibernate 2.1 (я думаю, что NHibernate 3.x требует .NET 3.5).

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

Edit:

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

Наиболее важным является стр.2 - сначала БД.

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

...