2013-02-25 3 views
1

Я перерабатываю продукт, который использует ADO-связь для подключения к SQL.Это бизнес-уровень находится в C++. Все запросы написаны как SP. Я хочу, чтобы продукт поддерживал SQL 2008 и может быть Mysql (еще не финализирован).Перемещение с ADO на ADO.net

Это изменения, которые я думал!

  1. Перемещение всего сообщения на ADO.net.
  2. Поскольку переход от SP к специальным SQL-запросам может потребовать много усилий, как о создании слоя C#-оболочки, который используется предыдущим уровнем bussines, который находится на C++.
  3. мысль о серьезном взгляде на некоторые из инструментов ОРМ. Но поскольку это связано со многими SP, я чувствую, что лучше идти поэтапно.

Мне нужны отзывы/рекомендации для этого. Это хорошая практика?

+0

Во-первых, какой масштаб мы говорим - это 20? 200? SPs? Также: если ваши существующие SP работают, почему бы просто не перейти к SP через ADO.NET? Здесь нет необходимости переходить на специальный SQL. Главное, что я скажу, хотя: избегайте соблазна «DataTable» и т. Д .; ничего хорошего не приходит из этого :) –

+0

Настоящий продукт использует SQL 2005. Я хотел бы переместить его на SQL 2008, возможно, в следующей версии будет поддерживаться MySQL. Я тоже думал об этом. Но будет ли это оболочка C# вокруг ado.net для бизнес-уровня, который находится на C++, приведет к любой помехе производительности? – user1687824

ответ

3

Основываясь на личных предпочтениях, я бы создал LINQ2SQL или, возможно, слой Entity Framework для доступа к базе данных. И LINQ2SQL, и Entity Framework могут импортировать определения и вызвать хранимые процедуры¹.

Я бы затем постепенно преобразовал хранимые процедуры в код LINQ.

¹) В разумных пределах SP: s с несколькими наборами возвратов и выборами, которые не из одной таблицы, должны отображаться вручную, но это все еще возможно.

+0

У меня есть вопрос здесь. поддерживает LINQ2SQL MySQL? , Я слышал, что сущность хороша. Но для меня это будет много работать. Я думаю, что переход от ado к ado.net даст лучший результат. не так ли? – user1687824

+0

Я думаю, что есть сторонний поставщик MySQL для Linq2SQL, но тогда я бы пошел на EF. Необработанный ADO.NET немного медленнее, чем с использованием сопоставления OR, но, с другой стороны, написание кода с использованием сопоставления OR обычно быстрее и менее подвержено ошибкам, чем напрямую с использованием ADO.NET. –

+0

Внесите небольшой тестовый проект, импортируйте свою базу данных в качестве модели EF, и вы сразу увидите, совместимы ли ваши SP: s с дизайнером EF. –

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