one-to-one 明示的なFKプロパティ(PayGroup.SupervisorIdなど)との関係 )はサポートされていません。
したがって、そのプロパティをモデルから削除します:
public class PayGroup
{
public int Id { get; set; }
public virtual Employee Supervisor { get; set; }
}
次の流暢なマッピングを使用します:
modelBuilder.Entity<PayGroup>()
.HasRequired(e => e.Supervisor)
.WithOptional()
.Map(m => m.MapKey("SupervisorId"));
WithOptional() callは2つのことを指定します。まず、Employeeには逆ナビゲーションプロパティがありません クラス、2番目にFKはオプションです(Allow Nulls = true 表にあります。
逆ナビゲーションプロパティを追加する場合
public class Employee
{
public string EmployeeId { get; set; }
public string FullName { get; set; }
public virtual PayGroup PayGroup { get; set; } // <=
}
WithOptional(e => e.PayGroup)に変更します 。
必須にする場合(Allow Nulls = false 表内)、対応するWithRequiredDependentを使用します オーバーロード(依存 ここでは、Employee プリンシパルになります およびPayGroup 依存になります )。