C# EF使用fluent api创建可选关系
这些是我的课程:C# EF使用fluent api创建可选关系,c#,entity-framework,fluent,C#,Entity Framework,Fluent,这些是我的课程: public class Department { [Key] [Column("Department_Id")] public int DepartmentId { get; set; } [Required] [Column("Name")] public string Name { get; set; } [Column("Manager_Id")] public int? ManagerId { get
public class Department
{
[Key]
[Column("Department_Id")]
public int DepartmentId { get; set; }
[Required]
[Column("Name")]
public string Name { get; set; }
[Column("Manager_Id")]
public int? ManagerId { get; set; }
[Column("Parent_Department_Id")]
public int? ParentDeptId { get; set; }
public virtual ICollection<Department> ChildDepartments { get; set; }
public virtual Department ParentDepartment { get; set; }
public virtual Employee Manager { get; set; }
}
public class Employee
{
[Key]
[Column("Employee_Id")]
public int Id { get; set; }
[Required]
[Column("First_Name")]
public string FirstName { get; set; }
[Required]
[Column("Last_Name")]
public string LastName { get; set; }
[Required]
[Column("Job_Title_Id")]
[ForeignKey("JobTitle")]
public int? JobTitleId { get; set; }
[Column("Manager_Id")]
public int? ManagerId { get; set; }
[Required]
[Column("Department_Id")]
public int? DepartmentId { get; set; }
public virtual Department Department { get; set; }
public virtual JobTitle JobTitle { get; set; }
}
公共课部
{
[关键]
[栏目(“部门Id”)]
public int DepartmentId{get;set;}
[必需]
[列(“名称”)]
公共字符串名称{get;set;}
[栏目(“经理Id”)]
公共int?ManagerId{get;set;}
[栏(“家长部门Id”)]
public int?ParentDeptId{get;set;}
公共虚拟ICollection子部门{get;set;}
公共虚拟部门父部门{get;set;}
公共虚拟员工管理器{get;set;}
}
公营雇员
{
[关键]
[列(“员工Id”)]
公共int Id{get;set;}
[必需]
[列(“名字”)]
公共字符串名{get;set;}
[必需]
[列(“姓氏”)]
公共字符串LastName{get;set;}
[必需]
[栏(“职务名称”)]
[外键(“职务”)]
公共int?JobTitleId{get;set;}
[栏目(“经理Id”)]
公共int?ManagerId{get;set;}
[必需]
[栏目(“部门Id”)]
公共int?部门ID{get;set;}
公共虚拟部门部门{get;set;}
公共虚拟JobTitle JobTitle{get;set;}
}
现在在部门经理是可选的。如何使用fluent api建立这种关系?我想我需要使用modelBuilder.Entity().haseoptional(e=>e.Manager)
,但不知道接下来应该做什么。我做错了什么
更新:
我已经为我的部门准备了这段代码,如果这有什么不同的话:
modelBuilder.Entity<Department>()
.HasMany(e => e.ChildDepartments)
.WithOptional(e => e.ParentDepartment)
.HasForeignKey(e => e.ParentDeptId);
modelBuilder.Entity()
.HasMany(e=>e.ChildDepartments)
.with可选(e=>e.ParentDepartment)
.HasForeignKey(e=>e.ParentDeptId);
您需要完成该关系
modelBuilder.Entity<Department>().HasOptional(e => e.Manager).WithOptionalDependent();
modelBuilder.Entity().has可选(e=>e.Manager).WithOptionalDependent();