Какие большие преимущества Linq to SQL / Entities, если база данных позволяет только хранимые процедуры? - PullRequest
2 голосов
/ 21 апреля 2009

Linq to SQL и Linq to Entities зависят от создания динамического SQL, который выполняет большую часть своей работы, особенно если у вас есть классы, представляющие таблицы базы данных некоторым образом. Однако, если базы данных не разрешают специальные SQL-запросы, и все должно проходить через хранимые процедуры, я не вижу большой ценности в использовании L2Q или L2E, если разработчик должен написать все предварительные версии SP, чтобы сделать все работайте И знайте, что это все SP, которые когда-либо будут использоваться во всех сценариях приложения.

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

Ответы [ 3 ]

1 голос
/ 21 апреля 2009

Реализации хранимых процедур LINQ-to-SQL по-прежнему будут возвращать ваши объекты-сущности; вы не получаете невероятных возможностей фильтрации, которые предоставляет L2S, создавая динамический SQL, но вы все равно можете использовать расширения для анализа.

Как я уже сказал, вы все равно можете добавить свою схему, и когда ваши хранимые процессы возвращают эти сущности, вы уже сопоставили эти объектные отношения.

Я все еще думаю, что это удобно:)

0 голосов
/ 21 апреля 2009

Если бы я был вашим dba, я бы тоже не разрешил доступ через любой тип динамического SQL. Неправильно разрешать прямые разрешения для таблиц, поскольку сотрудники слишком легко совершают мошенничество или крадут конфиденциальные данные. LINQ2SQl также, кажется, пишет неэффективный код (по крайней мере, все примеры кода, который он пишет, который я видел, это код, который я бы не разрешил в своей базе данных), и гораздо проще настроить производительность хранимых процедур.

Будем благодарны, что у вас есть хороший DBA, который действительно заботится о безопасности и производительности базы данных.

0 голосов
/ 21 апреля 2009

Если вы ограничены хранимыми процедурами, то лучшим выбором будет Linq-to-Sql, он будет работать достаточно хорошо, если ваша цель - отобразить классы один в один с наборами результатов из хранимых процедур.

Есть некоторые причуды с дизайнером, но как только вы их выясните, это очень хорошо работает для сопоставления наборов результатов с классами.

Существует большая разница между использованием "хранимых процедур" для ORM и использованием такого инструмента, как NHibernate, и отображением прямо на ваши таблицы.

Отображение прямо на таблицы дает вам все удивительные вещи, такие как ленивая загрузка и шаблон репозитория.

здесь - это мой пост в блоге о настройке linq-to-sql с использованием хранимых процедур, надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...