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; } 
} 

пол Enum

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

Я хочу, чтобы отношение внешнего ключа с тремя моделями/таблицами по идентификатору departmentID, но ошибка показывает это> Свойство «DepartmentID» не может быть настроено как свойство навигации. Имущество должно быть допустимым типом объекта, а свойство должно иметь не абстрактный абсорбционный и сеттер. Для свойств коллекции тип должен реализовывать ICollection , где T является допустимым типом объекта Моя модель –

+1

Вы не должны писать свой вопрос в комментарии. Пожалуйста, попробуйте изменить свой вопрос и написать свои данные там –

+0

Удалить '[ForeignKey (" DepartmentID ")]' из 'public int DepartmentID {get; задавать; } '(если это необходимо, его нужно будет применить к свойству' public virtual Department Department {get; set;} '(но его не в вашем случае). Вам также необходимо удалить' [DatabaseGenerated (DatabaseGeneratedOption.Identity) ] 'от него. –

ответ

0

Используйте [ForeignKey ("DepartmentID")] на общедоступном виртуальном отделе Департамента {получить; задавать; }, а не свойство DepartmentID. Таким образом, DepartmentID будет идентифицирован как иностранный ключ для ассоциированного отдела.

Даже вам не нужно устанавливать атрибут ForeignKey, поскольку вы установили имя DepartmentID так же, как и свойство связанного с делением объекта, по умолчанию соглашение 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; } 
}