2

User、Product、および UserProduct というツリー テーブルがあるとします。

ユーザーは多くの製品を持つことができ、製品は多くのユーザーに割り当てることができます。

linq を使用してすべてのユーザーの製品を取得したいと考えています。User.cs クラスでこのメソッドを作成しました。

    public List<Product> GetProductList()
    {
        List<Product> listProduct = new List<Product>();
        List<UserProduct> listUserProduct = this.UserProdutcs.ToList();

        foreach (var item in listUserProduct )
        {
            listProduct.Add(item.Product);
        }

        return listProduct; 
    }

より良い方法があるかどうか知りたいですか?

4

1 に答える 1

2

LINQ匿名型を使用して投影できます。

var newList = (from products in listProduct
           join uProducts in listUserProduct on products.id equals uProducts.productId
           select new {
                ProductDescription = products.Description,
                ProductAttribute = products.YourAttributes,
                ProductUserProductAttribute = uProducts.YourAttribute
           }).ToList();
于 2012-05-24T10:26:45.890 に答える