0

だから私はこのようなテーブルの人々を持っています

Id    Name
1     John
2     Mike
3     Sophie

そして、私はテーブルを持っています

Id    IdReceptor    IdRequired
1     1             2
2     1             1
3     2             3
4     3             1

基本的に、ある人が電話に応答し、その人が受信者であり、電話の人が別の人と話す必要がある、同じ人が応答した、または他の人である可能性があるため、このテーブルデザイン、IdReceptorIdRequiredの両方があります人々への外国の鍵

EF4コードファーストを使用してこれをモデル化するにはどうすればよいですか?

4

1 に答える 1

1

たとえば、次のようにします。

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Call
{
    public int Id { get; set; }

    [ForeignKey("Receptor")]
    public int IdReceptor { get; set; }
    [ForeignKey("Required")]
    public int IdRequired { get; set; }

    public Person Receptor { get; set; }
    public Person Required { get; set; }
}

必要に応じてコレクションを導入Personし、注釈または Fluent API を使用して追加のマッピングを追加するか、遅延読み込みが必要な場合はPersonナビゲーション プロパティを作成できます。virtualしかし、上記のコードは単純な解決策です。EF は、慣例により 2 つの一対多のリレーションシップを検出します。

于 2012-05-04T15:27:19.823 に答える