这似乎是如此基本,我不能为我的生活弄明白。
使用.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的人来说是基本的,但是......
由于
答案 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 }