5

私は2つのテーブルを持っています:

要件

要件 ID - 主キー

備品

FixtureId - PK

RequirementId - FK / NULLABLE / 一意の制約

フィクスチャは 1 つの要件のみを持つことができ、他のフィクスチャは同じ要件を参照できません。フィクスチャが要件を持つことは必須ではなく、オプションです。

私が行ったことは、Sql Server で Fixture テーブルの RequirementId 列に Unique 制約を設定したことです。Entity Framework CTP 5 でこれのマッピングを設定するにはどうすればよいですか?

また、各エンティティに双方向のナビゲーション プロパティを設定することは可能でしょうか?

public class Fixture
{
    public int FixtureId { get; set; }
    public Requirement Requirement { get; set; }
}

public class Requirement
{
    public int RequirementId { get; set; }
    public Fixture Fixture { get; set; }
}

多分私はこれをすべて間違っているので、アドバイスは素晴らしいでしょう。前もって感謝します

4

2 に答える 2

5

あなたが求めているのは1対1の外部キー関連付けと呼ばれ、Ladislavが言及したように、EFではネイティブにサポートされていません。ただし、この記事では Code First で実装する方法を示しました。

于 2011-03-02T20:50:17.687 に答える
0

残念ながら、現在のバージョンの EF では、一意の制約を使用できません。EF で 1:0..1 マッピングを実現する唯一の方法は、「PK の共有」です。これは、メイン エンティティが Fixture の場合、FixtureId を PK として持ち、Requirement は FixtureId を PK として持ち、Fixture への FK を持つことを意味します。

于 2011-03-02T20:45:02.810 に答える