【发布时间】:2021-06-13 00:08:07
【问题描述】:
我有一个这样的查询表,人们让我问当我得到用户ID来查询Document表时,如何获取当前用户的Positions数据。
var claimsIdentity = _httpContextAccessor.HttpContext.User.Identity as ClaimsIdentity;
var userId = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier)?.Value.ToString();
var query = from c in _context.Documents
join u in _context.Users on c.UserID equals u.Id
join p in _context.Positions on u.Id equals p.UserID
where c.UserID.ToString() == userId
select new { c, u, p };
【问题讨论】:
-
如果目的只是获取当前用户的
Positions数据并且没有与Documents相关的过滤器,这里应该只涉及2个表:User&Position.因此,您无需在此查询中加入Documents,这可能会产生Position的重复信息,并使得提取最终的Positions集变得更加困难。删除_context.Documents,最终查询将返回所有Positions,每个User都与相应的User配对。那应该是您想要的数据。 -
我想通过用户当前查询2表文档和位置
-
我刚刚添加了一个答案来帮助您。我希望这就是你想要的。如果没有,请留下您的评论以使其更清楚。同样,对于此类问题,您得到答案的机会比其他类型的问题高得多。因为它只是与查询相关,而且许多用户喜欢 LINQ。但是你应该更清楚要求,尤其是你想要的数据格式。
标签: mysql linq asp.net-core entity-framework-core