在ef core 2.2中,我使用了DbQuery将原始的SQL结果映射到对象,如下所示:
public partial class AppDbContext{
public DbQuery<SimpleQueryModel> SimpleQM {get;set;}
}
然后
var result=_dbContext.SimpleQM.FromSql(sqlString,params);
这不会创建任何额外的表,而且运行良好。
在 EF Core 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中如何实现相同的功能?