实体连接不会产生任何结果 - 生成的SQL会

时间:2018-03-16 11:38:56

标签: c# .net entity-framework entity-framework-core

我在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))

感谢您的帮助!

0 个答案:

没有答案