EF 6.0でコードファーストとデータ注釈を使用しようとしていますが、 2つのクラスのモデル:イベントの主催者と参加者することができ、基本的には従業員:2つのクラス間で複数の異なる(1対多、多対多)関係があるときにモデルクラスに注釈を付ける方法
public class Employee
{
[Key]
public Guid Id { get; set; }
public string name { get; set; }
public virtual ICollection<Event> event { get; set; }
}
public class Event
{
[Key]
public Guid Id { get; set; }
public string name { get; set; }
[ForeignKey("organizer")]
public Guid organizerId { get; set; }
public virtual Employee organizer { get; set; }
public virtual ICollection<Employee> atendees { get; set; }
}
私はEFが、それは驚くほどの従業員間の多対多の関係を生成しません。これらのクラスからデータベースを生成してみましょう(従業員イベントの多対多テーブルはありません)、従業員にはイベントIDの外部キーが生成されます。 (私は理由がありません。)
もちろん、Fluent-APIを使用して適切なdbマッピングを直接作成できますが、これをデータアノテーションで実現する方法があるかどうかは疑問でした。
'event'は予約済みのキーワードです。それはおそらく問題ではありませんが、そのプロパティを呼び出すことはできません。しかし、このコレクションは、従業員が主催者であるか、出席者であるすべてのイベントに適用されますか?おそらく、あなたは[InverseProperty](http://www.entityframeworktutorial.net/code-first/inverseproperty-dataannotations-attribute-in-code-first.aspx)属性で少しでも遊ぶ必要があります。 – Corak
多分 'Event.organizer'を' Employee.event'にmany-to-oneとしてマッピングします。 –
タイトルが実際にあなたの質問をカバーするようにあなたの質問を編集してください。 – CodeCaster