6

EF CTP5 を使用して、エンティティが 2 つの個別のテーブルから構築されるエンティティ分割を実行しようとしています。2 つのテーブルのキーが主キーでない場合、この分割を行うことは可能ですか?

たとえば、Id は Note エンティティの主キーです。CreatedUser の詳細を別のテーブルから取得したいのですが、この 2 番目のテーブルの主キーは Note エンティティの CreatedUserId に対応しています。

        modelBuilder.Entity<Note>()
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.Id,
                    n.Title,
                    n.Detail,
                    n.CreatedUserId,
                    n.CreatedDateTime,
                    n.UpdatedUserId,
                    n.UpdatedDateTime,
                    n.Deleted,
                    n.SourceSystemId,
                    n.SourceSubSystemId
                });
                mc.ToTable("Notes");
            })
            .Map(mc =>
            {
                mc.Properties(n => new
                {
                    n.CreatedUserId,
                    n.CreatedUser
                });
                mc.ToTable("vwUsers");
            });

エンティティの主キーが両方のテーブルに存在する場合にのみ、エンティティの分割が可能であるというコメントを見たことがありますか?

前もって感謝します。

4

1 に答える 1

2

はい。エンティティ分割シナリオで生成されるすべてのテーブルには、主キーとしてオブジェクト識別子(Note.Idなど)が必要です。この場合、UserエンティティとNoteエンティティの間に1:*の関連付けを作成することを検討する必要があります。

于 2011-02-17T17:25:17.943 に答える