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();