У меня есть следующие сущности
public class SchoolContext : DbContext
{
public DbSet<Address> Addresses { get; set; }
public DbSet<Employee> Employees { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public virtual Employee Employee { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Address Address { get; set; }
}
Если я установил связь между Employee и Address со следующим Fluent API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Option #1
modelBuilder.Entity<Employee>()
.HasRequired(s => s.Address)
.WithRequiredPrincipal(a => a.Employee);
// Option #2
modelBuilder.Entity<Employee>()
.HasOptional(s => s.Address)
.WithRequired(a => a.Employee);
}
Выше двух параметров создают структуру таблицы точно так же, если да, то какая разница между двумя параметрами. Если я поеду с опцией № 1, я думал, что сущность Employee всегда должна иметь адресную сущность, но это не так. Я смог сохранить объект Employee без значения адреса.
Спасибо заранее.