我创建了一个员工管理系统,其中有两种员工:
永久物具有合同用户拥有的所有属性,因此我确定了一对一或一比零,其中我将拥有2个模型contractUser和PermanentUser,并且contractUser可能会在永久用户表中有记录,也可能没有,我认为对于这些模型来说一切都很好,但是我如何才能将恒久用户记录添加到contractUser呢,这是两个模型:
public class ContractUser
{
public int Id { get; set; }
[Display(Name = "الاسم")]
[Required(ErrorMessage ="من فضلك ادخل اسم الموظف")]
public string name { get; set; }
[Display(Name = "الرقم القومي")]
[Required(ErrorMessage = "برجاء ادخال الرقم القومي")]
[MaxLength(14,ErrorMessage ="الرقم القومي بجب ان يتكون من 14 رقم فقظ")]
[MinLength(14, ErrorMessage = "الرقم القومي بجب ان يتكون من 14 رقم ")]
public string nationalId { get; set; }
[Display(Name = "رقم الموبيل")]
[Required (ErrorMessage = "برجاء ادخال رقم الموبيل")]
[MaxLength(11, ErrorMessage = "رقم الموبيل بجب ان يتكون من 11 رقم فقظ")]
[MinLength(11, ErrorMessage = "رقم الموبيل بجب ان يتكون من 11 رقم ")]
public string mobileNumber { get; set; }
[Display(Name = "العنوان")]
[Required(ErrorMessage ="برجاء ادخال العنوان")]
public string address { get; set; }
[Display(Name = "نسبة العجز")]
[Required(ErrorMessage = "برجاء ادخال نسبة العجز و ان كانت 0")]
[Range(0,100,ErrorMessage ="بحب النسبة ان تكون بين 0-100")]
public int disablityPrecentage { get; set; }
[Display(Name = "تاريخ الميلاد")]
[Required(ErrorMessage = "برجاء ادخال تاريخ الميلاد")]
public DateTime birthDate { get; set; }
[Display(Name = "تاريخ التعاقد")]
[Required(ErrorMessage = "برجاء ادخال تاريخ التعاقد")]
public DateTime contractionDate { get; set; }
[Display(Name = "الحالة الاجتماعية")]
[Required(ErrorMessage = " برجاءاختيار الحالة الاجتماعية ")]
public int maritalStateId { get; set; }
//navigation properties
public MaritalState maritalState { get; set; }
public PermanentUser permanentUserDetails { get; set; }
永久用户类
public class PermanentUser
{
[Key]
[ForeignKey("ContractUser")]
public int EmpolyeeId { get; set; }
[Required(ErrorMessage = "براجاء ادخال المؤهل")]
[Display(Name = "المؤهل")]
public string Qualification { get; set; }
[Required(ErrorMessage = "براجاء ادخال المسمي الوظيفي")]
[Display(Name = "المسمي الوظيفي")]
public string jobName { get; set; }
[Required(ErrorMessage = "براجاء ادخال رقم الملف ")]
[Display(Name = "رقم ملف الخدمة")]
public int fileNumber { get; set; }
[Required(ErrorMessage = "براجاء ادخال تاريخ التثبيت ")]
[Display(Name = "تاريخ التثبيت ")]
public DateTime tasbetDate { get; set; }
[Required(ErrorMessage = "براجاء ادخال قرار التثبيت ")]
[Display(Name = "قرار التثبيت ")]
public int tasbetOrderNumber { get; set; }
[Required(ErrorMessage = "براجاء اختيار المجموعة الوظيفية ")]
[Display(Name = "المجموعة الوظيفية ")]
public int jobGroupId { get; set; }
//navigation properties
public ContractUser ContractUser { get; set; }
public JobGroup jobGroup { get; set; }
}
答案 0 :(得分:0)
我认为您可以创建具有所有共享属性的Employee模型,然后让ContractUser和PermanentUser模型继承Employee模型。
实体框架Core在数据库中创建了一个表,该表具有所有属性,因此您不必链接这两个模型。