Хорошая платформа .NET ORM, которая поддерживает OleDb и хранимые процедуры?
Вопрос
Типичная хранимая процедура в нашей системе принимает около 20 параметров.Рефакторинг этих хранимых процедур также невозможен.Я в основном прибегнул к написанию своего собственного генератора кода, который оборачивает эти SP в "Командные" объекты (не зависящие от поставщика базы данных), причем их общедоступные свойства соответствуют параметрам SP.Это работает, но я бы предпочел стороннее испытанное решение.
Кто-нибудь может что-нибудь порекомендовать?Я не нашел ни одного, который поддерживал бы OleDB и хранимые процедуры.
Редактировать:Мне нужно подключение к OleDb из-за SQL 6.5 (хотите верьте, хотите нет).ADO.NET не удается подключиться к SQL 6.5.Кроме того, это приложение .NET 2.0, поэтому LinqToSql для меня бесполезен.
Редактировать 2:Я уже пробовал NHibernate и iBatis.Ни один из них не соответствует моим потребностям.В последний раз, когда я пробовал NHibernate, требовалось, чтобы SP возвращал результирующий набор.Это не относится к моему SPs.Оба они также требуют, чтобы я вручную указывал параметры.
Решение
У меня есть опыт работы с 3 слоями ORM:
Все три являются бесплатными, поддерживают OleDb-соединения и хранимые процедуры.
Subsonic - Этот был создан специально для веб-приложений.Это во многом имитирует то, что делает Ruby On Rails.Они просто добавили миграции.Дозвуковой - самый легкий из трех.Это немного сложнее использовать для Winforms, но не так сложно, как я ожидал.Он поставляется с приятным инструментом пользовательского интерфейса для генерации кода и поддержания настроек базы данных.Это единственный, который поддерживает различные базы данных.Я использовал его с SQLite, SQL Server CE и SQL Server.
CSLA.NET - Этот может в значительной степени справиться практически со всеми новыми и блестящими.СЕТЕВЫЕ технологии.Я знаю, что автор только что добавил поддержку WCF, WPF и Silverlight.Это то, что я использую, когда мне нужна очень тяжелая работа с приложениями корпоративного типа.В нем есть множество приятных функций, таких как неограниченное количество отмен объектов, возможность помечать коллекции как доступные только для чтения, а также возможность перемещать и привязывать объекты в любом месте, где вы хотите.Это самое близкое, что вы получите к тому, что JBoss делает на Java.
Net Tiers - я не большой поклонник, но это поможет выполнить свою работу.Он легче CSLA, но все же тяжелее дозвукового.
Я хотел бы также упомянуть NHibernate на, Активная запись Замка, и Корпоративная библиотека Microsoft.Хотя у меня не так уж много опыта работы с ними.
Другие советы
Из того, что я слышал, ADO .NET Entity framework имеет небольшую поддержку хранимых процедур...LINQ2SQL вы можете заставить это работать, но может потребоваться что-то вроде прокси-класса...NHibernate и iBatis - ваш лучший выбор...
Альтернативы:
- ССЫЛКА на SQL
- ADO.NET Структура сущностей
- NHibernate на
- Ваш выбор )