加载表时显示用户名(存储在 ASP.Net Core Identity 系统中),而不是 ID

法沙德

我在做你认为简单的任务时遇到了很多麻烦。在我的 Web 应用程序中显示表格时将用户 ID 更改为用户名。这是从表中检索到的数据:(删除了不必要的信息)

var data = (from o in _mainDbContext.blog
                        select new blogViewModel
                        {
                            Id = o.id,
                            title = o.title,
                            Editor= o.editorID,

                        } );

editorID是由 ASP.Net Identity 系统创建的用户 ID。我需要加载相应的用户名并将其放置在所有获取的条目的编辑器字段中。


到目前为止我尝试过的:

就像是:

var data = (from o in _mainDbContext.blog
join u in _userManager.Users on o.editorID equals u.UserName
                        select new blogViewModel
                        {
                            Id = o.id,
                            title = o.title,
                            Editor= o.editorID,

                        } );

不起作用,因为 EF Core 不支持连接来自不同上下文的表。

使用foreach类似:

foreach (var row in data)
            {
                var user = await _userManager.FindByIdAsync(row.editorID);
                row.Editor= user.UserName;
            }

不起作用。它不会改变数据内部的信息。

尝试使用原始 SQL 也无济于事。因为FromSql仅适用于一张表并且ExecuteSqlCommand不适用于 SELECT。

爱德华

目前,EF Core不支持DbContext一个查询多个查询。您可以跟踪此行为Query: Throw if second context instance is used in single query #11101

对于解决方法,您可以考虑 convert _userManager.Usersto _userManager.Users.ToList()which 是一个列表对象。

            var data = from o in _mainDbContext.Blogs
                    join u in _userManager.Users.ToList() on o.EditorID equals u.Id
                    select new BlogViewModel
                    {
                        Id = o.Id,
                        Title = o.Title,
                        Editor = u.UserName
                    };
        var result = data2.ToList();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 ASP.NET Core Identity 中控制器的构造函数中获取登录用户名

刷新ASP.Net Core Identity中的用户cookie票证

在ASP.NET Identity 2.0中获取当前用户ID

如何自定义ASP.NET Identity Core用户名以在注册时允许特殊字符和空格

如何在Identity ASP.NET Core 2.1(Identity Scaffolded)中为用户角色添加种子

ASP.NET Identity 注册新用户以使用用户名作为用户名而不是电子邮件,但仍不显示登录者

ASP.Net Core如何获得EF Core和Identity中的用户角色

用户在 ASP.NET Core Identity 中打开设置页面时如何要求输入密码?

使用 .net core Identity 打印 Razor 页面中的所有用户名

在asp.net core 2.2中显示url slug而不是id

在ASP.NET Core 2中获取用户ID

使用ASP.NET Core Identity 3的用户角色权限

ASP.NET Core Identity 用户组

在 ASP.NET Core Identity 中,什么是票证?

更改ASP.NET Core Identity UI中的路由?

使用Identity Core的ASP.NET MVC框架中的身份

在 Identity Server ASP.NET Core 中获取 accessToken

ASP.NET Core Identity中的分层策略/要求

ASP.NET Core Identity ClaimsPrincipal 显示为空

如何使用ASP.Net Core Identity从登录的用户中检索Google个人资料图片?

将名称添加到 Asp.Net Core Identity 中的用户模型

通过ASP .NET CORE Identity中的SignInManager登录后如何获得用户声明?

删除ASP.NET Core Identity中已登录用户的策略

在使用 ASP.NET Core Identity 时存储用户类型特定属性的最佳实践是什么?

如何从ASP.NET Identity Core 2.0中删除与角色相关的表

如何将新列添加到 Identity RoleClaims 表中(asp net core)

在Identity Asp.net core 3 MVC中创建服务IUserStore时出错

是ASP.NET Identity用户ID是顺序GUID

Asp.Net Core Identity 2.2和Identity Server 4,更改用户ID类型会导致数据库上下文错误