2010-06-22 5 views
1

Любые мысли и комментарии к базе данных с более чем 3000 хранимых процедур, запрашивающих/обращающихся за более чем 1400 таблицами (слишком нормализованные). На самом деле хотите использовать такие технологии, как Entity Framework, предпочтительнее 4.0 и получить бизнес-логику из этих sproc?Дело против хранимых процедур?

Оцените реальное практическое использование & отзывов, если вы решите поделиться. Это база данных, которую я унаследовал, и действительно чувствую, что пришло время бросить sproc для лучшего бизнес-уровня.

+2

Работает ли это? Можете ли вы сохранить его? Есть проблема? Есть ли особые проблемы? Без конкретной «проблемы» говорить не о чем. –

+0

Ну, да и нет. Каждый звонок - это sproc. Команда находится в Индии, и мы используем Team City для развертывания передней и задней части (по отдельности, по крайней мере, сейчас). Это приложение .NET 1.1 и .NET 2.0 на уровне доступа к данным. Таблицы данных, строки данных, ADO.NET, корпоративная библиотека и т. Д. На самом деле нравится приводить их в мир .NET 3.5 для начала. Спасибо за ответ, Скотт. – baskint

+0

О, и иногда база кода выходит из синхронизации с sproc и становится нервотрепкой. Тесты DBIntegrations не работают, чтобы их поймать. – baskint

ответ

1

Не совсем ответ на ваш вопрос, но вы все еще можете использовать sprocs в Entity Framework: see here, в основном sprocs сопоставить вызовы методов на ваш объект контекста.

Мой Персональный опыт на самом деле противоположный вашему: я обычно старался держаться подальше от EF, потому что у него есть такая склонность настолько тесно сочетаться с вашим приложением. Хорошая вещь о sprocs заключается в том, что они допускают степень де-связи (например, я могу обновлять базу данных без изменения кода клиента). Но это, конечно, мое личное мнение.

+0

Да, они позволяют де-мутацию, но объем бизнес-логики внутри этих sproc концерн. они не являются простыми CRUD-операциями, либо сложны многие операции типа LEFT OUTER JOIN более десятка или более таблиц с несколькими фильтрами WHERE. Но я также вижу вашу мысль, и я начну вашу ссылку. Благодарю. – baskint

0

Это зависит от магазина, в котором вы работаете. Я работал во многих магазинах, у которых есть противоречивые мнения о том, следует ли извлекать выгоду из sprocs или кода на прикладном уровне. Вопрос в том, есть ли у вас больше людей, которые являются экспертами по поддержанию plsql/tsql или нет?

Лично я ненавидел sprocs и привилегированные инструменты orm и т. Д. Сейчас я предпочитаю, чтобы код приложения был чистым. Это происходит только после того, как в базе данных стало очень удобно. Пусть код базы данных существует в его родной среде со всеми доступными ему инструментами.

+0

Хороший вопрос. База данных должна была развиваться из ранней базы данных Access, я предполагаю, что с конца 90-х годов я не уверен. Он использует символы «Y» или «N» для хранения логических значений (ugh!). Слишком нормализован. Я слышал, что эксперт DBA и разработчики говорят о не более чем 30 присоединяется к sproc. Моя челюсть падает. Я пытаюсь получить больше информации о команде, но я хочу получить некоторые практические впечатления. Отсюда вопрос. ;) – baskint

+0

Звучит как серьезное обязательство принести этот материал человеку сущности. :-) Это не ошибка, подверженная самому себе. Я чувствую твою боль, хотя! Удачи сэр! – Jubal

0

Why use Stored Procedures?

На практике, вы в конечном итоге рефакторинг от EF в течение нескольких лет, в то время как ваш сохраненный прок может еще сидеть там готов использовать в последнем и самом лучшем клиентском слое. Клиент агностик, инкапсуляция и т. Д.

+0

это действительный момент, но объем инкапсулированной бизнес-логики бизнес-логики действительно не преуспевает в «модульном тестировании» бизнес-правил/логики.Я предпочитаю, чтобы они были написаны на C# и выполняли их выполнение с помощью некоторых тестов интеграции db. но это мое мнение. согласитесь, sproc действительно выдерживают испытание временем, но с облачными вычислениями на горизонте, возможно, пора уходить. – baskint

+0

Я не упоминал, что бизнес-логика должна быть упакована в procs, но они будут превосходить транзакционную обработку, целостность данных, избежать множественных вызовов и т. Д. – gbn

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