问题描述
|
我试图首先在Entity Framework中学习代码,但在建模关系时遇到了麻烦。这是一个基本的HR数据库,因此有两个实体,雇员和部门。
员工属于部门,部门有团队管理员和经理,两者实际上都是员工。我尝试使用以下方法对此进行建模:
EMPLOYEE
public int? DepartmentID { get; set; }
public virtual Department Department { get; set; }
Context:
modelBuilder.Entity<Employee>().HasOptional(x => x.Department);
DEPARTMENT
public class Department
{
[Required]
public int DepartmentID { get; set; }
[Required(ErrorMessage = \"The description is required.\")]
public string Description { get; set; }
public int? ManagerID { get; set; }
public virtual Employee Manager { get; set; }
public int? TeamAdministratorID { get; set; }
public virtual Employee TeamAdministrator { get; set; }
}
Context:
modelBuilder.Entity<Department>().HasOptional(x => x.Manager);
modelBuilder.Entity<Department>().HasOptional(x => x.TeamAdministrator);
显然,我希望Department表只有四列-DepartmentID,Description,ManagerID和TeamAdministratorID,但是它为关系生成了另外两列,即Manager_EmployeeID和Team_Administrator_EmployeeID。同样,在Employee表中,将使用实体中指定的DepartmentID列生成Department_DepartmentID列来存储DepartmentID,而不是存储DepartmentID。
我究竟做错了什么?我如何定义字段和关系以避免代码首先忽略我指定的内容并在数据库中生成它自己的导航字段?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)