0

指定类属性 'DepartmentID的' 不能被配置为导航属性

public class Designation 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [Key] 
    public int id { get; set; } 

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [ForeignKey("DepartmentID")] 
    public int DepartmentID { get; set; } 



    public bool IsActive { get; set; } 

    public string AddedBy { get; set; } 

    public DateTime AddedDate { get; set; } 
    public string UpdateBy { get; set; } 

    public DateTime UpdateDate { get; set; } 
    public virtual Department Department { get; set; } 
} 

系类

public class Department 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [Key] 
    public int DepartmentID { get; set; } 
    public string DepartmentName { get; set; } 

    public bool IsActive { get; set; } 

    public string AddedBy { get; set; } 

    public DateTime AddedDate { get; set; } 
    public string UpdateBy { get; set; } 

    public DateTime UpdateDate { get; set; } 
    public virtual ICollection<Designation> Designations { get; set; } 
} 

EmployeeInfo类

public class EmployeeInfo 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [Key] 
    public int EmployeeID { get; set; } 
    public int DepartmentID { get; set; } 
    [ForeignKey("DepartmentID")] 
    public virtual Department Department { get; set; } 
    [Required(ErrorMessage = "Employee Name is Required"), Display(Name = "Name")] 
    public string EmployeeName { get; set; } 
    [Required(ErrorMessage = "Employee Bangla Name is Required"), Display(Name = "Bangla Name")] 
    public string EmployeeBanglaName { get; set; } 
    [Required(ErrorMessage = "Department Name is Required")] 
    public string Department { get; set; } 
    [Required(ErrorMessage = "Designation is Required")] 
    public string Designation { get; set; } 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
    public DateTime JoiningDate{ get; set; } 

    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
    public DateTime DateOfBirth { get; set; } 
    [Required(ErrorMessage = "BloodGroup is Required"), Display(Name = "Blood Group")] 
    public string BloodGroup { get; set; } 
    [Required(ErrorMessage = "Gender is Required")]  
    public gender Gender { get; set; } 
    [Required(ErrorMessage = "Father Name is Required"), Display(Name = "Father Name")] 
    public string FatherName { get; set; } 
    [Required(ErrorMessage = "Mother Name is Required"), Display(Name = "Mother Name")] 
    public string MotherName { get; set; } 
    [Required(ErrorMessage = "Husband/Wife Name is Required"), Display(Name = "Spouse Name")] 
    public string SpouseName { get; set; } 
    public string ChildrenNumber { get; set; } 
    public string CardNumber { get; set; } 
    [Required(ErrorMessage = "Contact No is Required"), DataType(DataType.PhoneNumber)] 
    public string ContactNo { get; set; } 
    [Required(ErrorMessage = "Email is Required"), DataType(DataType.EmailAddress), StringLength(200)] 
    public string Email { get; set; } 

    [Required(ErrorMessage = "HomeContactNo is Required"),DataType(DataType.PhoneNumber)] 
    public string HomeContactNo { get; set; } 
    [Required(ErrorMessage = "District Name is Required")] 
    public string District { get; set; } 
    [Required(ErrorMessage = "Thana is Required")] 
    public string Thana { get; set; } 
    [Required(ErrorMessage = "Village Name is Required")] 
    public string Vill { get; set; } 
    [Required(ErrorMessage = "Post Code is Required")] 
    public string PostCode { get; set; } 
    public string Image { get; set; } 
    public byte[] picture { get; set; } 
    public bool IsActive { get; set; } 

    public string AddedBy { get; set; } 

    public DateTime AddedDate { get; set; } 
    public string UpdateBy { get; set; } 

    public DateTime UpdateDate { get; set; } 
} 

性别枚举

public enum gender 
{ 
    Male, 
    Female,enter code here 
    Other 
} 
+0

我想通过departmentID与三个模型/表进行外键关系,但错误显示如下>属性'DepartmentID'不能被配置为导航属性。该属性必须是有效的实体类型,并且该属性应该具有非抽象的getter和setter。对于集合属性,类型必须实现ICollection ,其中T是有效的实体类型 我的模型是 –

+1

YOu不应该在Comment中编写您的问题。请尝试编辑您的问题并在那里写下您的详细信息 –

+0

从'public int DepartmentID {get;}中移除'[ForeignKey(“DepartmentID”)]''组; }(如果需要的话,它需要应用到公共虚拟部门部门{get; set;}属性(但它不是你的情况)。你还需要删除'[DatabaseGenerated(DatabaseGeneratedOption.Identity) ]也是如此。 –

回答

0

使用[ForeignKey的( “DepartmentID的”)对你的公开虚拟部门部门{获得;组; }属性而不是DepartmentID属性。因此DepartmentID将被确定为Associated Department的一个外键。

即使您不需要设置ForeignKey属性,因为您已将DepartmentID名称设置为与Department关联的对象属性相同,默认情况下,惯例EF将DepartmentID设置为外键。

请参阅以下代码,您将获得清晰的图像。

public class Designation 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [Key] 
    public int id { get; set; } 

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 

    public int DepartmentID { get; set; } 

    public bool IsActive { get; set; } 

    public string AddedBy { get; set; } 

    public DateTime AddedDate { get; set; } 
    public string UpdateBy { get; set; } 

    public DateTime UpdateDate { get; set; } 
    [ForeignKey("DepartmentID")] 
    public virtual Department Department { get; set; } 
}