0

我有以下表示精确表字段的类。建立关系的正确方法是什么,以便我可以使用实体框架查询相关字段。代码优先设置两个表之间的一对多关系

我想使用数据注解,并希望在指定关系时明确而不是使用基于约定。 每组都可以有许多技能。

var SkillsGrouped = da.sv_SkillGroups.Include(“Sv_Skills”); 我得到的错误提到,无法映射字段名称,实际上它抱怨的字段不是任何表的一部分。

[Table("sv_Skill")] 
    public class sv_Skill 
    { 
     [Required] 
    [Key] 
     public int id { get; set; } 
     [MaxLength(4000)] 
     public string skillDescription { get; set; } 
     public int? skillGroupId { get; set; } //References id column in sv_SkillGroup table 
     [MaxLength(255)] 
     public string createdBy { get; set; } 
     public DateTime? createdOn { get; set; } 
     [MaxLength(255)] 
     public string updatedBy { get; set; } 
     public DateTime? updatedOn { get; set; } 
     [MaxLength(50)] 
     public string status { get; set; } 
    } 


[Table("sv_SkillGroup")] 
    public class sv_SkillGroup 
    { 

     [Required] 
     [Key] 
     public int id { get; set; } 
     [MaxLength(4000)] 
     public string skillGroupDescription { get; set; } 
     [MaxLength(255)] 
     public string createdBy { get; set; } 
     public DateTime? createdOn { get; set; } 
     [MaxLength(255)] 
     public string updatedBy { get; set; } 
     public DateTime? updatedOn { get; set; } 
     [MaxLength(50)] 
     public string status { get; set; } 

     public virtual ICollection<sv_Skill> sv_Skills { get; set; } 

    } 
+0

'sv_SevaSkill'类声明在哪里? –

+0

它实际上是sv_skills –

回答

0

我认为你没有正确的类 sv_Skill声明中设置多到一个关系的一个端点,正确的是这样的:

[Table("sv_Skill")] 
public class sv_Skill 
{ 
    [Required] 
    [Key] 
    public int id { get; set; } 
    [MaxLength(4000)] 
    public string skillDescription { get; set; } 

    public int? skillGroupId { get; set; } 
    //this new field was added - link to sv_SkillGroup as foreign key via 
    //field skillGroupId above 
    public sv_SkillGroup skillGroup { get; set; } 

    [MaxLength(255)] 
    public string createdBy { get; set; } 
    public DateTime? createdOn { get; set; } 
    [MaxLength(255)] 
    public string updatedBy { get; set; } 
    public DateTime? updatedOn { get; set; } 
    [MaxLength(50)] 
    public string status { get; set; } 
} 

放下你当前迁移与此表并重新创建它带有新的代码。

+0

重新创建关系中涉及的表后,它工作 –

相关问题