首页 > 解决方案 > EntityType 没有定义键。定义此 EntityType 的键 - 但确实如此

问题描述

好的。我已经寻找解决方案,但没有一个适合我的问题。我定义了一个名为 tblRbnCampaignMemberList 的实体,如下所示:

[Table("tblRbnCampaignMemberList")]
public partial class tblRbnCampaignMemberList
{
    [Key]
    public int rcm_id { get; set; }
    public int rcm_MemberUID { get; set; }
    public int rcm_rp_id { get; set; }
    public int rcm_rc_id { get; set; }
    public DateTime? rcm_InterviewCompletedUTC { get; set; }
    public int rcm_quality_id { get; set; }
    public DateTime? rcm_Rbn_claim_date { get; set; }
    public int rcm_Rbn_status_id { get; set; }
    public int rcm_QC_MemberUID { get; set; }
    [Column(TypeName = "smallmoney")]
    public decimal? rcm_AwardAmount { get; set; }
    public int? rcm_AwardTypeID { get; set; }
    [StringLength(50)]
    public string rcm_RbnOrderID { get; set; }
    [Column(TypeName = "date")]
    public DateTime? rcm_DateAwarded { get; set; }
    public int? rcm_AwardedBy_MemberUID { get; set; }
    [StringLength(1024)]
    public string rcm_Comments { get; set; }
    public bool rcm_Canceled { get; set; }
    public int? rcm_new_rcm_id { get; set; }
    [StringLength(256)]
    public string rcm_AlternateEmail { get; set; }
    public virtual tblRbnAwardType tblRbnAwardType { get; set; }
    public virtual tblRbnCampaign tblRbnCampaign { get; set; }
    public virtual tblRbnQuality tblRbnQuality { get; set; }
    public virtual tblRbnGiftclaimStatu tblRbnGiftclaimStatu { get; set; }
    public virtual tblRbnProject tblRbnProject { get; set; }
}

然后我从第一个类定义了另一个类,如下所示:

public class smc_RbnCampaignMemberList : Entities.tblRbnCampaignMemberList
{
     public String sml_Title { get; set; }
     public int rcme_MemberUID { get; set; }
     public String rcme_firstName { get; set; }
     public String rcme_middleName { get; set; }
     public String rcme_lastName { get; set; }
     public String rcme_eMail { get; set; }
     public String rcme_orgName { get; set; }
     public String rcme_tmpei_idValue { get; set; }
     public int rcme_qualityAvg { get; set; }
     public int AMMember { get; set; }
     public int DBMember { get; set; }
     public int LPMember { get; set; }
     public int SBMember { get; set; }
     public int AEMember { get; set; }

     public List<smc_RbnMemberTags> lstRbnMemberTags { get; set; }
}

编译器很高兴,但是当我尝试运行项目时,我收到一个运行时错误,上面写着:

EntityType 'smc_RbnCampaignMemberTags' 没有定义键。定义此 EntityType 的键。

即使代码甚至没有使用该类型并且即使有一个公共[Key]定义,也会发生 rutime 错误。

想法?

标签: asp.netentity-framework-6

解决方案


在这种情况下,答案不是从实体框架类继承。我尝试在继承类上使用 [NotMapped] 标签,但没有骰子。我硬着头皮将继承类重新定义为与基类相同,问题就消失了。确实应该有某种方法来继承实体框架类的数据结构,而无需进行所有导致此错误的跟踪等。

到下一个错误。


推荐阅读