Почему ядро ​​Entity Fframework не поддерживает необработанный SQL-запрос? - PullRequest
0 голосов
/ 06 ноября 2019

Я использовал Entity Framework 6 в своем приложении asp.net и использовал необработанные запросы, такие как:

string studentName = ctx.Database.SqlQuery<string>(
         "Select studentname from Student where studentid=1").FirstOrDefault();

Теперь я перемещаю свое приложение в ядро ​​asp.net, но я не смог найти raw sqlзапрос без использования типа DbSet.

var students = context.Students
                  .FromSql("Select * from Students where Name = 'Bill'")
                  .ToList();

Но это не решает мои решения.

Существует ли какое-либо расширение, разработанное для выполнения SQL-запросов?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Вы можете использовать метод расширения здесь, чтобы создать специальный DbContext для вашего типа: https://github.com/aspnet/EntityFrameworkCore/issues/1862#issuecomment-451671168

0 голосов
/ 06 ноября 2019

Я получил следующее из официальной документации :

Метод SqlQuery в DbSet позволяет писать необработанный SQL-запрос, который будет возвращать экземпляры сущностей. Возвращенные объекты будут отслеживаться контекстом так же, как если бы они были возвращены запросом LINQ. Например:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs.SqlQuery("SELECT * FROM dbo.Blogs").ToList();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...