DbSet 当没有MyModel的物理表时属性为空值?

问题描述 投票:0回答:1

(。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

c# entity-framework asp.net-core entity-framework-core
1个回答
1
投票

事实证明public DbSet<MyModel> MyModels { get; }不能为只读。添加set;解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.