Sql 从表中选择第一个id
我想根据我的子类别列出所有条目。所以我想在加载主页上显示条目列表,而不必事先选择任何类别或子类别 我做了一个查询,返回条目列表,但手动放置子类别ID 以下是查询:Sql 从表中选择第一个id,sql,linq,asp.net-mvc-4,linq-to-sql,Sql,Linq,Asp.net Mvc 4,Linq To Sql,我想根据我的子类别列出所有条目。所以我想在加载主页上显示条目列表,而不必事先选择任何类别或子类别 我做了一个查询,返回条目列表,但手动放置子类别ID 以下是查询: int userId = WebSecurity.GetUserId(User.Identity.Name); var preQuery = (from sub in dc.SubCategory join c in dc.Category on sub.SubCategoryId equa
int userId = WebSecurity.GetUserId(User.Identity.Name);
var preQuery = (from sub in dc.SubCategory
join c in dc.Category on sub.SubCategoryId equals c.Id
join u in dc.User on c.UserId equals u.UserId
where u.UserId == userId
select sub.SubCategoryId).Take(1).FirstOrDefault();
var query = (from e in dc.Entry
join sub in dc.SubCategory on e.SubCategoryId equals sub.SubCategoryId
join cat in dc.Category on sub.CategoryId equals cat.Id
join u in dc.User on cat.UserId equals u.UserId
where ((u.UserId == userId) && (cat.UserId == userId)
&& (sub.CategoryId == cat.Id) && (e.SubCategoryId == preQuery ))
select e).ToList();
return View(query);
因此,我的观点是,我不想手动写入id 6,而是希望获取子类别id列表并从中选择第一个id。我已经进行了预查询,但仍然没有得到所需的结果。有任何建议说明我做错了什么吗?我能够为我的问题找到解决方案,因此我发布了解决方案。如果任何人有优化解决方案的建议,欢迎分享
int userId = WebSecurity.GetUserId(User.Identity.Name);
var preQuery = (from e in dc.Entry
join sub in dc.SubCategory on e.SubCategoryId equals sub.SubCategoryId
join cat in dc.Category on sub.CategoryId equals cat.Id
join u in dc.User on cat.UserId equals u.UserId
where u.UserId == userId
select e.SubCategoryId).Take(1);
var query = (from e in dc.Entry
join sub in dc.SubCategory on e.SubCategoryId equals sub.SubCategoryId
join cat in dc.Category on sub.CategoryId equals cat.Id
join u in dc.User on cat.UserId equals u.UserId
where ((u.UserId == userId) && (cat.UserId == userId)
&& (sub.CategoryId == cat.Id) && (e.SubCategoryId == preQuery.FirstOrDefault()))
select e).ToList();
return View(query);
无论出于什么原因,您为什么不想进行预查询,在其中您将选择firs ID。这可能是您进行预查询的最快选项,但仍然不是所需的结果。建议我做错了什么?尝试使用Let