2012-04-07 64 views
1

我很努力將屬於同一用戶的多行值轉換爲集合。將多行值轉換爲LINQ中的集合(列表)

這是一個簡單的場景。

用戶表:用戶ID,密碼

地址表:地址,用戶ID

用戶表和地址表是一個一對多的關聯 - 一個用戶可能擁有多地址。 假設用戶的ID是1001,而他/她有兩個地址,一個在奧克蘭,另一個在惠靈頓。 我想選擇他們和用戶的ID一起。 1001奧克蘭 1001惠靈頓 所以問題是有沒有辦法可以把這兩個值放入收藏列表。

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方法。 我想將列表對象放入一行,以避免用戶標識符的冗餘。

感謝您的幫助。

回答

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

您沒有加入地址表。

+0

感謝您的回答,那太棒了。 – Hatsuki 2012-04-19 09:30:42

+0

沒問題。如果你對這個anwser很好,你可以考慮接受它 – Arion 2012-04-19 09:34:06