2

私は.Net MVC3プロジェクトに取り組んでいます。同じテーブルで 2 つのクエリを実行する次のコードがあります。2 番目のクエリは、最初のクエリの結果に依存します。これを書き直して (ネストされたクエリを使用して) 単一のクエリを使用し、結果をビューモデルに割り当てるにはどうすればよいですか?

public ViewResult Category(string id)
{
    var viewModel = new ProductCategoryNavigation();

    viewModel.category = db.Category.Single(c=>c.NavigationId==id);
    viewModel.subCategories = db.Category.Where(i => i.ParentId == category.Id);

    return View(viewModel);
}
4

3 に答える 3

3
var query = (from c in db.Category.Where(x => x.NavigationId == id)
             join sc in db.Category on c.Id equals sc.ParentId into g
             select new {
                 Category = c,
                 SubCategories = g
             }).Single();


viewModel.category = query.Category;
viewModel.subCategories = query.SubCategories;
于 2013-01-30T13:23:25.603 に答える
1

カテゴリからカテゴリへのマッピング関係がある場合は、このようなものを使用できます。

viewModel.subCategories = db.Category.Single(c=>c.NavigationId==id).Category;

関係がある場合は、次のように 2 つの異なる realtion が表示されます。

Category.Category1 > return Category (parent)
Category.Category2 > return Collection of Category (children)
于 2013-01-30T13:14:40.433 に答える
0

このようなものを試すことができると思います。

viewModel.subCategories = from c in db.categories
                          join c1 in db.categories on c.Id = c1.ParentId 
                          where c.NavigationId = id
                          select c1
于 2013-01-30T13:29:28.187 に答える