1

同じユーザーに属する複数行の値をコレクションに変換するのに苦労しています。

ここに簡単なシナリオがあります。

users テーブル:userid、password

アドレス テーブル:アドレス、ユーザー ID

ユーザー テーブルとアドレス テーブルは 1 対多の関係です。つまり、1 人のユーザーが複数のアドレスを持つ場合があります。ユーザーの ID が 1001 で、1 つはオークランド、もう 1 つはウェリントンの 2 つのアドレスを持っているとします。ユーザーのIDと一緒に両方を選択したいと思います。1001 Auckland 1001 Wellington したがって、問題は、これら 2 つの値をリストのようなコレクションに入れることができるアプローチがあるかどうかです。

public class UserDetails{
    private List<String> _Address
    public string userid{get;set;}
    public List<String> Address{
    get{retrun _Address;}
    set{_Address=value;}
}
}

var user_address= from _user in users 

                  join _address in address on _user.userid=_address.userid

                  select new userDetails{
                  userid=_user.userid
                  **Address.add()**
};

LINQ で List を作成し、add メソッドを呼び出す方法を知っている人はいますか。ユーザーIDの冗長性を避けるために、リストオブジェクトを1行に入れたいと思います。

ご協力いただきありがとうございます。

4

1 に答える 1

1

多分このようなもの:

var user_address= from _user in users 
                  select new userDetails{
                  userid=_user.userid,
                  Address=(from _address in address
                           where _user.userid=_address.userid
                           select _address.:address
                           ).ToList()
};

アドレス テーブルに参加する必要はありません。

于 2012-04-07T10:00:14.403 に答える