0

1つのクラス(ユーザー)への2つの参照を持つクラスがあります:

public class Xpto {
    public string Username { get; set; }
    public virtual User User { get; set; }
    public string Username2 { get; set; }
    public virtual User User2 { get; set; }
}

重要なのは、EFは最初のキー(ユーザー名)への参照のみを作成することです。そうすれば、UserとUser2は、私が意図したものではなく、キーとしてユーザー名を持ちます...

私はこれが答えであることがわかりました:

nHibernate、2つのプロパティを同じクラスにマッピング

しかし、これを自分のシナリオに適用する方法がわかりません。

ありがとう。

編集:皆さん、気にしないでください...私はもう少し調べるべきだったと思います。答えはここにあります: 別のクラスへの2つの参照を持つPOCOオブジェクトを作成するにはどうすればよいですか?

標準は次のとおりです。<property_name><key_name> したがって、正しい方法はUserUsernameUser2Usernameになります。

ありがとう。

4

1 に答える 1

1

代わりにForeignKeyAttributeの使用を検討してください。そうすれば、キー属性に好きな名前を選択できます。

public class Xpto {

    [ForeignKey("User")]
    public string Username { get; set; }

    public virtual User User { get; set; }

    [ForeignKey("User2")]
    public string Username2 { get; set; }

    public virtual User User2 { get; set; }
}
于 2012-10-27T22:52:12.707 に答える