在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/