Вы можете использовать метод расширения FromSql
, чтобы начать запрос LINQ на основе необработанного запроса SQL.
var blogs = context.Blogs
.FromSql("SELECT * FROM Blogs")
.Where(b => b.Id ==1)
.FirstOrDefault();
Или вы также можете параметризировать пользовательский ввод, чтобы предотвратить возможность атаки SQL-инъекцией.успешный.
var blogs= context.blogs.FromSql("SELECT * From Blogs Where Id = {0}", id).FirstOrDefault();
Команда SQL может быть любым допустимым оператором SQL, который возвращает все необходимые поля данных.Хранимые процедуры можно вызывать с помощью метода FromSql. DbContext
предоставляет свойство Database
, которое включает метод с именем ExecuteSqlCommand
.Этот метод возвращает целое число, указывающее количество строк, на которые влияет оператор SQL, переданный ему.Допустимые операции: INSERT, UPDATE и DELETE.Метод не используется для возврата сущностей.
Для получения более подробной информации вы можете обратиться к следующим ссылкам:
https://docs.microsoft.com/en-us/ef/core/querying/raw-sql
https://www.learnentityframeworkcore.com/raw-sql