我在LINQ / EF-Core中使用以下代码时遇到了一些麻烦。
查询本身很简单,我不确定它为什么不起作用?
SQL后台返回了一个值,但EF没有产生任何结果。
以下是我失败的尝试,并想知道它为什么不起作用?
第一次亮相
var test = (from pages in _dbContext.Pages
from claims in _dbContext.AspNetUserClaims
where claims.UserId == data.UserId
where pages.PermissionValue == claims.ClaimType
select new
{
pages.PermissionValue,
claims.UserId
}).ToList();
第二次尝试
var result = _dbContext.Pages.GroupJoin(_dbContext.AspNetUserClaims, p => p.PermissionValue,
c => c.ClaimType, (p, g) => new {Parent = p, Children = g});
第一个生成的SQL(返回一个值)是
SELECT [pages].[PermissionValue], [claims].[UserId]
FROM [AspNetPages] AS [pages]
CROSS JOIN [dbo].[AspNetUserClaims] AS [claims]
WHERE ([claims].[UserId] = 'omitted') AND (([pages].[PermissionValue] =
[claims].[ClaimType]) OR
([pages].[PermissionValue] IS NULL AND [claims].[ClaimType] IS NULL))
感谢您的帮助!