Как выполнить запрос Raw SQL с помощью EntitFrameworkCore и сопоставить результат с типом IEnumerable <T>? - PullRequest
1 голос
/ 12 апреля 2019

Я новичок в ядре EntityFramework. Я перемещаю наше существующее приложение .net framework4.6.1 в ядро ​​.net 2. В EntityFramework 6 мы можем запустить необработанный SQL-запрос и получить значения, сопоставленные с типом (T), используя приведенный ниже код.

public IEnumerable<T> ExecuteSQL<T>(string sql)
{
   return Context.Database.SqlQuery<T>(sql, new object[] { });
}

Но EFcore не поддерживает это. Я хотел выполнить необработанный SQL-запрос с использованием EntityFrameworkCore, и я должен иметь возможность отобразить результат в IEnumerable . Похоже, SqlQuery отсутствует в EFCore. Пожалуйста, помогите мне найти альтернативный способ достижения функциональности. , Заранее спасибо.

Примечание: здесь, T не будет DbSet Class.it будет ViewModel , который имеет комбинацию полей из несколько столов.

1 Ответ

0 голосов
/ 12 апреля 2019

Согласно базовой документации Entity Framework вы можете использовать метод Query (). FromSql (sql).

public IEnumerable<T> ExecuteSQL<T>(string sql) where T : class
    {
        return context.Query<T>().FromSql(sql).ToList();
    }

Подробнее Объяснено здесь

...