.NET MVC 4 を使用して Web サイトを構築しています。私が持っているのは、他の人物に関して役割を持つ人物です。たとえば、A は B、D の父であり、A は C の夫です。
これが正しい方法かどうかはわかりませんが、クラス Persons とクラス Roles を持つことを考えていました。どういうわけか、Persons のインスタンスを Roles のインスタンスを介して Persons の別のインスタンスに接続し、それをデータベースに保存したいと考えています。
したがって、関連付けテーブルには Person1|Role|Person2 の 3 つの列が必要です。
これをモデルで最もよく表現するにはどうすればよいですか?
編集
助けてくれてありがとう。私はあなたが提案したものとかなり似たようなことをしました。
public class Persons
{
public Guid PersonsID { get; set; }
public string Name { get; set; }
ICollection<Relations> Relations { get; set; }
}
public class RelationshipType
{
public Guid ID {get; set;}
public string Type { get; set; }
public ICollection<Relations> Relations { get; set; }
}
public class Relations
{
public Guid RelationsID { get; set; }
public virtual Persons RealtedPerson { get; set; }
public virtual RelationshipType RelationType { get; set; }
public virtual Persons RealtedTo { get; set; }
}
これにより、Relations テーブルが Persons に対する 2 つの外部キーと RelationshipType に対する 1 つの外部キーを持つ 3 つのテーブルが得られました。いいえ、人を削除すると、この人を含む関係も削除される可能性があります。
最後の質問です。テーブルを生成するクラスではなく列挙型を選択したのはなぜですか?
ご協力いただきありがとうございます。