.Net MVC5中的sql查询帮助

时间:2014-02-13 21:53:22

标签: sql-server asp.net-mvc linq asp.net-mvc-5

这似乎是如此基本,我不能为我的生活弄明白。

使用.net MVC5我有一个路由/ {categoryName} /并且我正在尝试显示给定{categoryName}中的所有子类别。

现在我已经并且正在返回子类别ID号:

var subCategoriesInCategory =
  from cat in db.Categories
  join subcat in db.SubCategories
  on cat.CategoryId equals subcat.CategoryId
  where (cat.CategoryName == categoryName)
  select (subcat);

我确信这对于精通SQL的人来说是基本的,但是......

由于

2 个答案:

答案 0 :(得分:1)

尝试从子类别角度而不是类别中查看此内容。

var subCategoriesInCategory =
    from subcat in db.SubCategories
    where subcat.CategoryId == somevalue
    select subcat;

您需要将somevalue替换为匹配类别的CategoryID值。

或者你可以通过这样做绕过join子句:

var subCategoriesInCategory =
    from subcat in db.SubCategories
    where subcat.CategoryId == (from cat
        in db.Categories
        where cat.CategoryName == categoryName
        select cat.CategoryId
    ).FirstOrDefault()
    select subcat;

答案 1 :(得分:0)

看起来不错。尝试一个你知道有子类的类别

var subCategoriesInCategory =
  (from cat in db.Categories
  join subcat in db.SubCategories
  on cat.CategoryId equals subcat.CategoryId
  where (cat.CategoryName == "ExistingCategory")
  select subcat).FirstOrDefault();
if (subCategoriesInCategory == null ) 
{
   // somethings wrong !
}

或者如果您只想要subCategory ID

 ...  select new { subcat.ID }