C# 财产';部门ID';无法配置为导航属性
指定类别C# 财产';部门ID';无法配置为导航属性,c#,asp.net-mvc,entity-framework,code-first,foreign-key-relationship,C#,Asp.net Mvc,Entity Framework,Code First,Foreign Key Relationship,指定类别 public class Designation { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Key] public int id { get; set; } [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [ForeignKey("DepartmentID")] public int Departme
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; }
}
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 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; }
}
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
}
在公共虚拟部门{get;set;}
属性上使用[ForeignKey(“DepartmentID”)]
,而不是部门id
属性。因此,DepartmentID
将被标识为关联的部门的外键
即使您不需要设置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; }
}
我想按departmentID与三个模型/表建立外键关系,但错误显示如下>无法将属性“departmentID”配置为导航属性。该属性必须是有效的实体类型,并且该属性应该具有非抽象的getter和setter。对于集合属性,类型必须实现ICollection,其中T是有效的实体类型my model is您不应该在注释中写问题。请尝试编辑您的问题并在此处写入详细信息从public int DepartmentID{get;set;}
中删除[ForeignKey(“DepartmentID”)]
(如果需要,需要将其应用于公共虚拟部门{get;set;}
属性(但不在您的情况下)。您还需要删除[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
也从中生成。