3

Я хотел бы получить ваш совет.Принудительное использование хранимых процедур с ADO.NET Entity Framework

Я сейчас разрабатываю небольшое клиентское приложение WPF, используя C#, привязки, ADO.Net Entity Framework, ODP.net и базу данных Oracle.

Приложение представляет собой небольшой, два экрана XAML, около 15 таблиц. Я разрабатывал использование сущностей, заполняя мои объекты через приложение и используя метод SaveChanges.

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

По его мнению, риск состоит в том, что приложение может удалить все строки в одной таблице, а не только одну строку, если идентификатор предоставлен для хранения хранимой процедуры.

Я нахожу, что много избыточного количества всего за 15 стол.

Что вы думаете об этом?

+1

Похоже, он понятия не имеет о * хорошем * приложении программирования. –

ответ

1

Вы предложили своему администратору базы данных, что используете Linq для SQL? Таким образом, вы можете извлекать объекты, представляющие отдельные строки, и это значительно снижает вероятность случайного удаления нескольких строк.

Лично я считаю, что EDM может быть излишним для размера БД.

Я должен сказать, что я большой сторонник LINQ к SQL и не большой поклонник SPs однако ....

0

Linq2SQL на вершине ODP.NET является большой стек. И я согласен с Эндрю, потому что вам нужно будет написать код для загрузки записей, удалить все из них и зафиксировать изменения, это не совсем то, что может случиться «легко».

Забыть предложение where в инструкции LINQ не проще или сложнее, а затем забыть предложение where в хранимой процедуре.

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