Squeak.ru - шаблоны программирования

Обращение к другим объектам при использовании Linq2Sql и Sprocs

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

Однако то, что я хотел бы сделать, - это когда у нас есть связь между двумя объектами, эта связь может выполняться автоматически.

Например, если бы у меня был экземпляр объекта Person, я бы хотел сказать

var ОтсутствиеCount = people.Absence.Count ()

но поскольку у нас нет разрешения на выбор в таблице отсутствия, мы получаем исключение Sql.

есть ли что-нибудь вокруг этого?

08.01.2010

Ответы:


1

Используя хранимые процедуры для всех операций с базой данных, вы теряете большинство преимуществ ORM, таких как Linq-To-SQL, и использования запросов LINQ. Например, используя хранимые процедуры для извлечения всех ваших данных, вы теряете возможность строгой проверки типов для всех ваших запросов.

Вы, конечно, все еще можете использовать L2S с хранимыми процедурами, но я не вижу в этом смысла, если все ваши операции с запросами должны выполняться через хранимые процедуры.

Чтобы ответить на ваш второй вопрос, как вы ожидаете, что L2S сможет заполнить таблицу отсутствия, если у вас нет разрешения на выбор для таблицы? Если бы L2S каким-то образом мог это сделать, в чем был бы смысл установленной вами безопасности?

Рэнди

08.01.2010
  • Насколько я понимаю, когда вы отбрасываете выбранную хранимую процедуру в таблицу в конструкторе, она становится выбором для таблицы (несмотря на то, насколько это возможно неэффективно), я полагаю, что это не так. 08.01.2010
  • Да, но вы все еще используете L2S для выполнения хранимой процедуры для получения данных. L2S на самом деле не дает здесь никакой ценности, и у вас по-прежнему нет строгой проверки типов в ваших запросах. 08.01.2010
  • Существует очевидное преимущество использования L2S в том, что он генерирует DAL и создает отображение и UOW, единственная отсутствующая проблема, которая у нас есть, заключается в том, что entityref не может быть прочитан. 08.01.2010
  • Собственно, это вполне возможно, см. Мой ответ ниже 12.01.2010
  • Этот ответ не отвечает на вопрос, он просто предлагает изменить способ работы человека. Многие из нас работают в крупных организациях, которые настроены по-своему, и переход от хранимой процедуры к выборочному доступу требует больше времени и энергии, чем превращение самого большого из нефтяных танкеров. 12.01.2010

  • 2

    Совершенно случайно я наткнулся на пару сообщений в блоге, которые доказывают, что это возможно, я протестировал это, и это работает.

    в основном наличие методов, называемых Load, вызывающих в ваш сохраненный процесс, добавленных в ваш класс DataContext, позволит этому работать

    ссылки с примерами здесь

    Damien Guard

    Msdn

    12.01.2010
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...