1

我想对FromSqlRaw视图模型和它们之间的继承使用查询。我创建了两个示例视图模型:

public class SummaryVM 
{
    public int Quantity { get; set; }
    public int Value { get; set; }
}

public class DistrictVM : SummaryVM 
{
    public string DistrictName { get; set; }
}

我的DbContext有这个内容:

public DbSet<SummaryVM> SummaryVMs { get; set; }
public DbSet<DistrictVM> DistrictVMs { get; set; }
...
modelBuilder.Entity<SummaryVM>().HasNoKey();

我的查询:

return await _context.DistritVMs.FromSqlRaw(query).ToListAsync();

但我收到一个错误:

SqlException:列名“鉴别器”无效。列名“区名”无效

我知道这是由于 TPH 模式,如果我不使用继承,我可以解决这个问题,但是如何在没有 TPH 的情况下使用这两个具有继承的表,好吗?

解决方案 我必须创建一个未注册为实体的基类:

public abstract BaseClass
{
  public int Quantity { get; set; }
  public int Value { get; set; }
}

public class SummaryVM : BaseClass
{
}

public class DistrictVM : BaseClass
{
    public string DistrictName { get; set; }
}
4

1 回答 1

1

解决方案 我必须创建一个未注册为实体的基类:

public abstract BaseClass
{
  public int Quantity { get; set; }
  public int Value { get; set; }
}

public class SummaryVM : BaseClass
{
}

public class DistrictVM : BaseClass
{
    public string DistrictName { get; set; }
}
于 2020-11-23T17:54:50.773 回答