Необработанные SQL-запросы и ядро ​​Entity Framework

Я переношу свое приложение в ASP.NET MVC Core и Entity Framework Core, и я нашел проблему. У меня есть исходный SQL-запрос к сущности, подобной этой

var rawSQL = dbContext.Database.SqlQuery<SomeModel>("Raw SQL Query").ToList();

Но в context.Database нет SqlQuery<T>. У вас есть решение этой проблемы?

Ответ 1

Убедитесь, что вы добавили using Microsoft.Data.Entity; потому что существует способ расширения, который вы могли бы использовать.

var rawSQL = dbContext.SomeModels.FromSql("your SQL");

Еще лучше, вместо использования необработанного SQL (под угрозой атаки SQL-инъекций) этот метод FromSql позволяет использовать параметризованные запросы, такие как:

dbContext.SomeModels.FromSql("SELECT * FROM dbo.Blogs WHERE Name = @p0", blogName);