c# - EF Core 3 DbQuery等效功能

标签 c# .net-core entity-framework-core ef-core-3.0 ef-core-3.1

在ef core 2.2中,我已经使用DbQuery将原始sql结果映射到对象,如下所示:

public partial class AppDbContext{
    public DbQuery<SimpleQueryModel> SimpleQM {get;set;}
}

然后
var result=_dbContext.SimpleQM.FromSql(sqlString,params);

这不会创建任何额外的表,并且工作正常。
在ef核心3.1中,DbQuery已过时,并告诉我改用无键DbSet。
我已将其配置如下:
public partial class AppDbContext{
    public DbSet<SimpleQueryModel> SimpleQM {get;set;}
}

和在ModelCreating中
builder.Entity<SimpleQueryModel>().HasNoKey();

但这将在新的数据库迁移中创建一个新表,并且如果我告诉ef忽略此实体,如下所示
builder.Entity<SimpleQueryModel>().HasNoKey().Ignore();

我不能使用_dbContext.SimpleQM.FromSqlRaw();,这将引发异常并告知该模型未包含在上下文中。
如何在ef core 3.1中实现相同的功能?

最佳答案

问题解决了!
刚刚使用了此配置。

builder.Entity<SimpleQueryModel>().HasNoKey().ToView("view_name_that_doesnt_exist");

关于c# - EF Core 3 DbQuery等效功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59427708/

相关文章:

c# - Ef core LazyLoading - 访问类型集合的嵌套导航属性抛出 DetachedLazyLoadingWarning 错误

asp.net-core - 当前运行时目标框架与项目不兼容

c# - 如何使用 Gekofx 将参数从 C# 按值传递到 javascript 函数

c# - ListView 排序

c# - 每次页面加载时调用JS函数

c# - 如何在 .net core 3.1 中使用 ConfigurationBulder 绑定(bind)到配置类

c# - 如何使用 Entity Framework Core 1.1 实现自引用多对多关系?

asp.net - 填充使用 new 创建的 DbContext(EF7、ASP.NET 5、vnext)后,依赖项注入(inject) DbContext 为空

c# - 调用 EventHandler

c# - 在 MySQL 和 Entity Framework 中删除评论及其所有子项的 SQL 查询