一尘不染

在 EF Core 6.0.6 中执行原始 SQL

sql

我需要在已经通过 EF Core 6.0.6 连接的 MS SQL 中执行 SQL 命令。

所以我尝试了这个:

db.Database.Query<Question>("COMMAND");

但它说不DatabaseFacade包含 Query 方法。与这些相同的事情:

db.Query<Question>("COMMAND");

db.Database.ExecuteSqlCommand("COMMAND");

db.Database.SqlQuery("COMMAND");

db.Database.GetDbConnection();

一点解释:

  1. db是从包ApplicationDbContext继承的类的实例IdentityDbContext``Microsoft.AspNetCore.Identity.EntityFrameworkCore
  2. Question是我的班级,其实例存储Questions在我数据库的表中

所以我的主要问题是:Is there a way of executing raw SQL in EF Core 6.0.6?

我将非常感谢有关此事的任何材料或提示。


阅读 87

收藏
2022-07-22

共1个答案

一尘不染

你试过这个吗?

var questions = db.Questions.FromSqlRaw("SELECT * FROM Questions").ToList();

确保你using Microsoft.EntityFrameworkCore在上面

或者,如果您可以通过服务提供商访问 ApplicationDbContext,您可以尝试以下操作:

var context = serviceScope.ServiceProvider.GetService<ApplicationDbContext>();

context.Database.ExecuteSqlRaw("SQL");
2022-07-22