Вызов хранимой процедуры из Entity Framework Core - PullRequest
0 голосов
/ 24 февраля 2020

В Entity Framework 6 у нас была возможность запустить хранимую процедуру, которая возвращает указанный c объект модели с кодом, подобным следующему:

context.Database.SqlQuery<MyModelClass>("SomeStoredProcedure @p0", param1).ToList();

, где MyModelClass представляет набор результатов из хранимая процедура.

Мой вопрос: есть ли у нас аналогичные опции в Entity Framework Core? До сих пор я смог найти FromSQL, но (я могу ошибаться) этот метод ожидает имя dbset, тогда как я хочу предоставить простое имя класса модели (потому что может быть несколько хранимых процедур с несколькими моделями)

Любое предложение будет с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 26 февраля 2020

Итак, я понял, что для такого сценария нам нужно будет использовать Типы объектов без ключей , предоставляемые Entity Framework Core 3.0. Вот как это работает со мной.

Прежде всего, в OnModelCreating событии DbContext , введите тип сущности, такой как

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder
            .Entity<MyModelClassName>(m=>
            {
                m.HasNoKey();
            });
    }

Теперь мы просто вызовем хранимую процедуру следующим образом

context.Set<MyModelClassName>().FromSqlRaw("MyStoredProcedureName").ToList();

Спасибо.

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