0

4.3.1 に基づくコード ファーストの EF モデルがあります。

このモデルでは、Session と Event の 2 つのテーブル間に ZeroOrOne 関係があります。イベントはセッションを 1 つだけ持つことができますが、セッションを持たないイベント (一般的なスタートアップ イベントなど) もあります。多くのイベントが正常なセッションを共有できます。

私の Entities クラスでは、この FK 関係がマップされていることがわかります。

[assembly: EdmRelationshipAttribute("MyModel", "fk_event_session", "Session", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Data.Session), "Event", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Data.Event), true)]

ただし、SessionID が null の新しいイベントを追加しようとすると、アプリケーションはこの関係で外部キー例外をスローします。これは EF のバグですか、それとも他にチェックすべき点はありますか?

前もって感謝します。

4

2 に答える 2

0

問題が何であるかを理解しました。モデルに問題があり、プロパティが生成されませんでした。どういうわけか「参照制約」が空だったので、関連付けを削除して再追加すると、機能するようになりました。

于 2012-05-03T09:10:47.713 に答える
0

これは ZeroOrOne 関係ではなく、ZeroToMany 関係だと思います。エンティティと流暢なマッピングのビューを提供していただけると助かります (お持ちの場合)。

流暢なマッピングを使用して、次のようなことを試すことができます。

modelBuilder.Entity<Event>()
            .HasOptional(e => e.Session)
            .WithMany();
于 2012-04-27T12:52:46.880 に答える