Предложите простой ORM в .NET - дизайн для поддержки устаревших приложений - PullRequest
5 голосов
/ 20 мая 2011

Мне поручено обслуживать несколько устаревших приложений с интенсивным использованием хранимых процедур, созданных до '05, когда не было ORM. Разработчики, которые работают со мной, не знают ни Entity Framework, ни LINQ и не хотят учиться.

Существует ли в .NET ORM, обеспечивающий простой объектный интерфейс для существующих таблиц базы данных и, возможно, хранимых процедур?

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

Например, сохранение одной записи сотрудника и отдела

Employee e = new Employee("John", null);
Department d = new Department("QA");
d.save();
e.department = d;
e.save();

без написания операторов SQL INSERT.

EDIT: Я использую MS SQL Server 2008

Ответы [ 5 ]

4 голосов
/ 20 мая 2011

Взгляните на Роба Конери Massive .Это просто и кажется простым в использовании.Похоже, что требуется .NET 4, хотя.

3 голосов
/ 21 мая 2011

Я предлагаю вам использовать PetaPoco , совершенно новый ORM с простой в освоении линейкой.

От авторов сайта:

PetaPoco был первоначально вдохновленМассивный проект Роба Конери, но для использования с нединамическими объектами POCO.Это произошло потому, что я обнаружил, что многие из моих проектов, в которых использовались SubSonic / Linq, были медленными или смешались с пакетами Linq и CodingHorror.

Мне нужен был слой доступа к данным, который был крошечным, быстрым, простым в использовании и могработать на .NET 3.5 и / или Mono 2.6 (то есть: нет поддержки динамических расширений).Заявление Роба о том, что Massive состоит всего из 400 строк кода, заинтриговало меня, и я подумал, можно ли что-то подобное сделать без динамики.

3 голосов
/ 20 мая 2011

SubSonic довольно прост в использовании.LINQ to SQL тоже хороший выбор.Также взгляните на http://www.codeproject.com/KB/database/LightORMLibrary.aspx.

0 голосов
/ 20 мая 2011

NHibernate также может быть чем-то, на что можно обратить внимание, хотя лично мне не очень понравился оригинальный Java Hibernate, но это было много лет назад.Я также использую SubSonic на регулярной основе.Последний SubSonic более ориентирован на Linq, но обратите особое внимание на его способность «ActiveRecord».Я думаю, что это охватывает объектные вещи, которые вы пытаетесь сделать.Разработка на SubSonic больше не происходит, кроме случайных исправлений ошибок, но это с открытым исходным кодом, и есть группа Google для вопросов поддержки.Он также поддерживает большое количество баз данных, так как вы не упомянули, какую БД вы используете.

0 голосов
/ 20 мая 2011

Я использовал Subsonic в проектах .NET 2.0, и это было приятно.К сожалению, похоже, он больше не разрабатывается.

...