Entity Framework 6 0.1 到 0.1 与流利的关系 api

Entity Framework 6 0.1 to 0.1 relationship with fluent api

假设我想在 Entity Framwork 6 中为公司拼车建模:

我知道如何在具有中间关系的关系数据库中对此进行建模 table:

EmployeeCarAssociation
-EmployeeId
-CarId

使用 EmpoyeeIdCarId 作为主键,并且对两列都有唯一约束。

但是我如何使用 EF6 Fluent 创建这种 0.1 到 0.1 的关系 Api?

试试这个代码:

public class Employee
{
    public int Id { get; set; }
    public Car Car { get; set; }
    public int? CarId { get; set; }
}

public class Car
{
    public int Id { get; set; }
    public Employee Employee { get; set; }
}

public class ApplicationDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }
    public DbSet<Car> Cars { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>()
            .HasOptional(c => c.Employee)
            .WithOptionalDependent(e => e.Car)
            .Map(config =>
            {
                config.MapKey("EmployeeId");
            });

        base.OnModelCreating(modelBuilder);
    }
}