2014-10-28 154 views
0

以下是我在我的MVC項目中使用的模型類Employee使用代碼優先添加身份字段實體框架

public class Employee 
{ 
    [Required] 
    public string Name { get; set; } 

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int EmployeeID { get; set; } 

    [DataType(DataType.EmailAddress)] 
    public string Email { get; set; } 

    public int SkillID { get; set; } 

    [Display(Name="Employee Skill")] 
    public Skill EmployeeSkill { get; set; } 

    public virtual List<Skill> EmployeeSkills { get; set; } 

} 

正如你所看到的,我已經添加了[DatabaseGenerated(DatabaseGeneratedOption.Identity)]屬性爲EmployeeID財產。但儘管如此,當我嘗試插入不指定EmployeeID,作爲輸入值,我得到以下錯誤...

無法將NULL值插入列「僱員」,表「MVCTheRightWayContext-20141028005000.dbo 。僱員';列不允許有空值。 INSERT失敗。 該聲明已被終止。

回答

6

你必須添加[關鍵]譯註:

public class Employee 
{ 
[Required] 
public string Name { get; set; } 
[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public int EmployeeID { get; set; } 

[DataType(DataType.EmailAddress)] 
public string Email { get; set; } 

public int SkillID { get; set; } 

[Display(Name="Employee Skill")] 
public Skill EmployeeSkill { get; set; } 

public virtual List<Skill> EmployeeSkills { get; set; } 

}