2008-09-22 5 views
1

Типичная хранимая процедура в нашей системе принимает около 20 или около того параметров. Также нет никаких шансов рефакторинга этих хранимых процедур. Я в основном прибегал к написанию своего собственного генератора кода, который обертывает эти SP в агностические агенты базы данных («Database»), с их общедоступными свойствами, соответствующими параметрам SP. Он работает, но я бы предпочел стороннее испробованное и проверенное решение.Хорошая .NET ORM Framework, которая поддерживает OleDb и хранимые процедуры?

Может ли кто-нибудь порекомендовать что-нибудь? Я не нашел тот, который поддерживает OleDB и хранимые процедуры.

Редактировать: Мне нужно подключение OleDb из-за SQL 6.5 (верьте или нет). ADO.NET не может подключиться к SQL 6.5. Кроме того, это приложение .NET 2.0, поэтому LinqToSql бесполезно для меня.

Edit2: Я уже пробовал nHibernate и iBatis. Ни один из них не соответствует моим потребностям. В последний раз, когда я пробовал nHibernate, требуется, чтобы SP возвращал результирующий набор. Это не относится к моим SP. Оба из них также требуют, чтобы я вручную указывал параметры.

+0

Какую структуру вы выбрали? Просто любопытно. – 2008-09-26 12:11:56

ответ

5

У меня есть опыт работы с 3 ORM слоями:

Все три свободны, поддержка OleDb соединения, и хранимые процедуры.

Subsonic - Этот был создан специально для веб-приложений. Он имитирует много того, что делает Ruby On Rails. Они просто добавили миграции. Подзвуковая является самой легкой из трех. Это немного сложнее использовать для Winforms, но не так сложно, как я бы это сделал. Он поставляется с хорошим инструментом пользовательского интерфейса для генерации кода и ведения настроек базы данных. Это единственный, который поддерживает разные базы данных. Я использовал его с SQLite, SQL Server CE и SQL Server.

CSLA.NET - Это может справиться практически со всеми новыми и сильными технологиями .NET. Я знаю, что автор просто добавил поддержку WCF, WPF и Silverlight. Это то, что я использую, когда мне требуется очень тяжелая работа с приложениями типа enterpriseisey. Он имеет множество приятных функций, таких как неограниченное уничтожение объектов, возможность отмечать коллекции только как прочитанные, а также возможность перемещения и привязки объектов в любом месте. Это ближе всего к тому, что JBoss делает на Java.

Net Tiers - Я не большой поклонник, но он выполнит свою работу. Он легче CSLA, но все еще тяжелее Subsonic.

Я бы также упомянул NHibernate, Castle Active Record и Microsoft Enterprise Library.Однако у меня не так много опыта с ними.

+0

Вы уверены, что Subsonic поддерживает OleDB? – 2008-10-23 10:40:28

-1

Альтернативы:

  1. LINQ к SQL
  2. ADO.NET Entity Framework
  3. NHibernate
  4. Ваш выбор)
0

Из того, что я слышал основы ADO .NET Entitry поддерживает litle на хранимых процедурах ... LINQ2SQL вы можете заставить его работать, но может потребовать somekind прокси-класса ... NHibernate и IBatis i твой лучший выбор ...

Смежные вопросы