エンティティフレームワークのコードファーストアプローチを使用していて、2つの1対多の関係でリンクされている2つのオブジェクトがあるとします(1つPerson
は多くCar
のを所有できますが、各車には所有者と「メインドライバー」があります) 。2つのエンティティは次のとおりです。
public class Person {
#region Persisted fields
[Required]
public int PersonId { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string Surname { get; set; }
#endregion
#region Navigation properties
public virtual ICollection<Car> CarsOwned { get; set; }
#endregion
}
public class Car {
#region Persisted fields
[Required]
public int CarId { get; set; }
[Required]
public string Make { get; set; }
[Required]
public string Manufacturer { get; set; }
[Required]
public string RegNo { get; set; }
[Required]
[ForeignKey("Owner")]
public int OwnerId { get; set; }
[Required]
[ForeignKey("MainDriver")]
public int MainDriverId { get; set; }
#endregion
#region Navigation properties
public virtual Person Owner { get; set; }
public virtual Person MainDriver { get; set; }
#endregion
}
コレクションを決定するために2つの外部キー(OwnerId
またはMainDriverId
)のどちらを使用する必要があるかをエンティティフレームワークにどのように伝えることができますか?これら2つのエンティティを使用してデータベースを自動作成しようとしましたが、明らかに外部キーを使用したいのに、何らかの理由で外部キーとしてCarsOwned
使用したいと想定していました。MainDriverId
CarsOwned
OwnerId