1

私の (レガシー、変更不可) スキーマには、複合キーを使用して、User と UserAddress の間に 1 対 1 の関係があります。

Users:
- username (PK)
- email (PK)
- firsname
- lastname

UsersAddresses:
- username (PK, FK)
- email (PK, FK)
- city
- street

私の最初のアイデアは、 a を使用<joinしてそれらすべてを同じクラスに持ち込むことでした:

public class UserDTO
    {
        public string Username { get; set; }
        public string Email { get; set; }

        public string FirstName { get; set; }
        public string City { get; set; }
        //etc...

    }

しかし、私はマッピングについて知りません:

Join("UsersAddresses", j=>
                {
                    j.Table("UsersAddresses");
                    j.Fetch(FetchKind.Join);
                    j.Optional(false);
                    j.Key(k=>
                            {
                    //What here???                                          
                    k.Column(c=>
                        {
                            c.Name("");
                            c.Name("");
                        });
                    k.ForeignKey("");
                    k.ForeignKey("");
                });

                                });

これを達成する方法はありますか?あるいは、コンポーネントまたは 1 対 1 のマッピングを選択する必要があります...

4

1 に答える 1

0

Columns代わりに試してみてくださいColumn-キーのように、複数の列にまたがるオブジェクトのマッピングを許可するには、任意の数の列マッピング ラムダが必要です。

Join("UsersAddresses", j =>
{
    j.Table("UsersAddresses");
    j.Fetch(FetchKind.Join);
    j.Optional(false);
    j.Key(k =>
    {
        k.Columns(c =>
        {
            c.Name("username");
            c.ForeignKey("username_fk");
        }, c =>
        {
            c.Name("email");
            c.ForeignKey("email_fk");
        });
    });
});
于 2012-03-30T14:50:06.817 に答える