2

以下は、最初にEntity Frameworkコードで設定したPOCOクラスです。特定のカテゴリのすべてのブランドを返すことができるようにデータベースにクエリを実行するにはどうすればよいですか?

例: カテゴリのリストがあり、そのうちの 1 つをクリックします。そのカテゴリで入手可能なすべてのブランドの製品が表示されます。

これを行うためにクラスが正しく設定されているかどうかはわかりません。

  public class Product
    {
        [Key,ScaffoldColumn(false)]
        public int ProductID { get; set; }


        public string ProductName { get; set; }

        public int? CategoryID { get; set; }

        public virtual Category Category { get; set; }


        public int? BrandID { get; set; }

        public virtual Brand Brand { get; set; }


    }


   public class Brand
    {

        [ScaffoldColumn(false)]
        public int BrandID { get; set; }


        public string BrandName { get; set; }

    }


    public class Category
    {
        [ScaffoldColumn(false)]
        public int CategoryID { get; set; }

        public string CategoryName { get; set; }

        public virtual ICollection<Product> Products { get; set; }

}
4

1 に答える 1

2

どうですか

context.Products.
    Where(p => p.Category.CategoryID == categoryToFind).Select(p => p.Brand);

また

var brands = context.Products.
    Where(p => p.Category.CategoryID == categoryToFind).
    Select(p => p.Brand.BrandName).Distinct().ToList();

ブランド名だけが必要な場合。

于 2013-02-25T20:13:03.583 に答える