У меня есть следующие объекты
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; }
}
Если я установлю связь между Сотрудником и Адресом с помощью следующего Свободного 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 всегда должна иметь адресную сущность, но это не так. Мне удалось сохранить сущность Сотрудника без значения адреса.
Заранее спасибо.