Diciamo che voglio modellare un parco auto aziendale in Entity Framwork 6:
So come modellare questo in un database di relazioni con una tabella intermedia:
EmployeeCarAssociation
-EmployeeId
-CarId
Con EmpoyeeId
e CarId
come chiave primaria e un vincolo uniqe su entrambe le colonne.
Ma come posso creare questa relazione 0.1-to-0.1 con EF6 Fluent Api?
Prova questo codice:
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);
}
}