【问题标题】:sql query help in .Net MVC5.Net MVC5 中的 sql 查询帮助
【发布时间】:2014-03-13 01:05:01
【问题描述】:
这似乎很基本,我一生都无法弄清楚。
使用 .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 的人来说是基本的,但是...
谢谢
【问题讨论】:
标签:
sql-server
asp.net-mvc
linq
asp.net-mvc-5
【解决方案1】:
尝试从子类别的角度而不是类别的角度来看待这个。
var subCategoriesInCategory =
from subcat in db.SubCategories
where subcat.CategoryId == somevalue
select subcat;
您需要将 somevalue 替换为匹配类别的 CategoryID 值。
或者你可以这样做绕过连接子句:
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;
【解决方案2】:
看起来不错。试试你知道有子猫的类别
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 !
}
或者如果您只想要子类别 ID
... select new { subcat.ID }