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
依存になります )。