5

たとえば、ナビゲーション プロパティ (つまり、仮想) がある場合:
public virtual User Author { get; set; }

そして、そのユーザーのIDも取得したい、つまり:
public int AuthorId { get; set; }

この "AuthorId" が Author プロパティに関連付けられている必要があることを EF に伝えるにはどうすればよいですか?

これが自動化されるという考えは好きではありません (EF はこれを魔法のように推測します)。
同じテーブルへの複数の参照がある可能性があるため、次のようになります。

public virtual User Author { get; set; }
public int AuthorId { get; set; }
public virtual User Receiver { get; set; }
public int ReceiverId { get; set; }
4

1 に答える 1

8

エンティティ フレームワークは、AuthorID が Author クラスの FK であると想定します。詳細については、このブログ投稿を参照してください。

データ注釈を使用して、EF に明示的に伝えることもできます。

[ForeignKey("Author")]
public int AuthorId {get;set;}

または流れるようなマッピングを使用して:

modelBuilder.Entity<YourClass>().HasRequired(p => p.Author)
                .WithMany()
                .HasForeignKey(p => p.AuthorId);
于 2012-09-04T20:43:16.517 に答える