【发布时间】:2020-04-13 02:41:59
【问题描述】:
在 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;}
}
在模型创建中
builder.Entity<SimpleQueryModel>().HasNoKey();
但这将在新的数据库迁移中创建一个新表,如果我告诉 ef 忽略此实体,如下所示
builder.Entity<SimpleQueryModel>().HasNoKey().Ignore();
我不能使用_dbContext.SimpleQM.FromSqlRaw(); 这会抛出一个异常并告诉模型不包含在上下文中。
如何在 ef core 3.1 中实现相同的功能?
【问题讨论】:
标签: c# .net-core entity-framework-core ef-core-3.0 ef-core-3.1