C# 按层次结构访问表中的子类
我有以下课程:C# 按层次结构访问表中的子类,c#,entity-framework,ef-code-first,entity-framework-6,C#,Entity Framework,Ef Code First,Entity Framework 6,我有以下课程: public abstract class EsBase { [Key, Required] [DataMember] public Guid ID { get; set; } [ScaffoldColumn(false)] public bool SoftDelete { get; set; } } public class User: EsBase { [DataMember] public virtual Lis
public abstract class EsBase
{
[Key, Required]
[DataMember]
public Guid ID { get; set; }
[ScaffoldColumn(false)]
public bool SoftDelete { get; set; }
}
public class User: EsBase
{
[DataMember]
public virtual List<Role> RolesRequested { get; set; }
}
public class Scorer: User
{
[DataMember]
public string Name { get; set; }
}
公共抽象类EsBase
{
[钥匙,必填]
[数据成员]
公共Guid ID{get;set;}
[脚手架立柱(假)]
公共bool SoftDelete{get;set;}
}
公共类用户:EsBase
{
[数据成员]
公共虚拟列表角色请求{get;set;}
}
公共类记分器:用户
{
[数据成员]
公共字符串名称{get;set;}
}
当我尝试使用Scorer db对象时,我得到一个错误:
从物化的“System.Data.Entity.DynamicProxies.User_6F1B1…”类型到“Data.Models.Scorer”类型的指定强制转换无效
我想这是因为db表同时存储了用户和记分器,所以我不能只添加一个新的记分器
创建用户后,用户可能会获得记分器类/状态
如何在代码中设置它,以便我可以向用户添加记分器属性?
var Scorer=new Scorer(myUser)代码>?也许您需要添加构造函数?编辑:创建的用户
是从数据库中获取的吗?它是用new
关键字创建的吗?确保它已连接到数据库。您可以在尝试与记分员交互的地方发布代码吗?