ASP.NET - 将 AspNetUsers table 中的所有用户显示到身份的下拉列表中?

ASP.NET - Display all Users from AspNetUsers table into Dropdown List in Identity?

在做了一些研究之后,我找到了方法来完成我的问题,但是,我试图在一个名为 GetAssignedToDDL 的函数中执行此操作,该函数类型为 List<SelectListItem>

在尝试了我在此处和其他资源上找到的一些答案后,我不断收到同样的错误。我不断收到的错误:

Cannot implicitly convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List' LWC C:\Users\runningexe\Desktop\LincolnWaterCommissionWorkOrderInventorySystem\LWC\LWC\Controllers\WorkOrderController.cs 201 Active

有什么方法可以将函数类型设为 List<SelectListItem 吗?或者我在这里还缺少其他东西。就像我说的,我已经尝试了很多基本上做同样事情的解决方案,但我得到的错误是一样的。

编辑:函数使用柯克的回答。现在我的 DbContext 出现错误。

private static List<SelectListItem> GetAssignedToDDL()
        {
        List<SelectListItem> assignedToList = new List<SelectListItem>();

            var dbContext = new ApplicationDbContext();
            var userList = dbContext.Users.ToList();

        assignedToList = userList.Select(u => new SelectListItem
        {
            Text = u.UserName,
            Value = u.Id
        }).ToList();

      return assignedToList;
    }

我之前尝试的是:

private static List<SelectListItem> GetAssignedToDDL()
            {
              return userManager.Users.ToList();
        }

以及其他一些使用不同代码的尝试(同样的错误)。不过这是最近的一次。

DbContext 错误:

No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions object in its constructor and passes it to the base constructor for DbContext.

您可以使用 LINQ 的 Select 函数。在您看到编译错误的行中,尝试附加以下内容:

.Select(u => new SelectListItem { Text = u.UserName, Value = u.Id }).ToList();

如果您包含您的代码,我可以编辑此答案以使其更适合您的用例。如果 using System.Linq; 不存在,您还需要包含它。

如果您不熟悉 Select,它实际上被称为 mapping 函数。你可以找到很好的解释here.