2012-04-07 8 views
1

Ich habe Probleme mit der Konvertierung von Multi-Zeilen-Werte, die zu dem gleichen Benutzer in Sammlung gehören.Konvertieren mehrzeiliger Werte in Sammlung (Liste) in LINQ

Hier ist ein einfaches Szenario.

Benutzer Tabelle: Benutzer-ID, Passwort

Adresse Tabelle: Adresse, Benutzer-ID

Benutzertabelle und Adresstabelle ist eine Eins-zu-viele ähnliche - ein Benutzer mit mehreren Adressen haben könnte. Nehmen Sie an, die ID des Benutzers ist 1001, während er/sie zwei Adressen hat, eine in Auckland und eine andere in Wellington. Ich möchte beide zusammen mit der ID des Benutzers auswählen. 1001 Auckland 1001 Wellington So die Frage ist, gibt es einen Ansatz ist in der Lage, diese beiden Wert in Sammlung wie Liste zu setzen.

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()** 
}; 

Wer weiß, wie die Liste in der LINQ zu konstruieren und das Add-Methode aufrufen. Ich möchte das Listenobjekt in eine Zeile setzen, um die Redundanz der Benutzer-ID zu vermeiden.

Danke für Ihre Hilfe.

Antwort

1

Vielleicht so etwas wie:

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() 
}; 

Sie müssen nicht die Adresstabelle verbinden.

+0

Danke für Ihre Antwort, das ist großartig. – Hatsuki

+0

Kein Problem. Wenn es Ihnen gut geht, können Sie es akzeptieren – Arion