(。Net核心3.1)
我有一个模型课。我想用从SQL查询读取的数据填充模型类的列表。没有名称为MyModel
的物理表。
public class MyModel {
string A { get; set; }
string B { get; set; }
string C { get; set; }
}
以及下面的DbContext类
public calss MyDbContext : DbContext
{
public DbSet<MyModel> MyModels { get; }
public IEnumerable<MyModel> GetSomeValue(int x)
{
foreach (var i in MyModels.FromSqlRaw(sql)) // MyModels is always null
{
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Ignore<MyModel>();
modelBuilder.Entity<MyModel>().HasKey(x => new { x.A, x.B });
}
}
但是,属性MyModels
始终为null,因此MyModels.FromSqlRaw()
出错。如何运行原始sql以用数据库中的值填充MyModels
?
事实证明public DbSet<MyModel> MyModels { get; }
不能为只读。添加set;
解决了该问题。