簡體   English   中英

ApplicationDbContext ToListAsync() 不返回“Id”列數據

[英]ApplicationDbContext ToListAsync() not returning 'Id' Column data

Asp.NET MVC 菜鳥在這里

我有一個帶有任務的AppUserRepository

public async Task<IEnumerable<AppUser>> GetAllForFirm(Tenant tenant)
        {
            return await _context.AppUsers.Where(u => u.Tenant == tenant && u.isDeleted == false).ToListAsync();
        }

然后我像這樣調用這個任務:

視圖模型:

public List<AppUser> UsersForFirm { get; set; }

控制器( AppUserController ):

string username = User.Identity.Name;
AppUser user = await _appUserRepository.GetByUsernameAsync(username);
AppuserViewModel avm = new AppuserViewModel();
avm.UsersForFirm = (List<AppUser>)await _appUserRepository.GetAllForFirm(user.Tenant);

(對於額外的上下文,每個AppUser都有一個關聯的“租戶”object)

這幾乎可以正常工作,並且avm.UsersForFirm現在擁有一個AppUser列表,其中與給定的Tenant object 相關聯,我可以提取所有相關信息,如用戶名、Email 地址、lastLoggedIn 日期等。到目前為止一切都很好......

但是,當我嘗試分配avm.Id時,似乎我的GetAllForFirm任務正在為每個返回的AppUser返回一個空白Guid (00000000-0000-0000-0000-000000000000) 如果我檢查我的數據庫(在存儲了我的所有AppUser信息的AspNetUsers表中),所有AppUsers都有一個有效的(“非”空白) Id ,這是與GetAllForFirm()任務的結果不同的唯一信息。

有誰能夠解釋為什么會這樣,以及我做錯了什么?

謝謝!

試試這個並通過 viewmModel

這是 controller

using Microsoft.AspNetCore.Identity;
using WorkshopPro.Areas.Identity.Data;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;

   public class UsersAdmin : Controller
        {
            private UserManager<ApplicationUser> userManager;
            private readonly YourContext _cs;
    
    
            public UsersAdmin(UserManager<ApplicationUser> usrMgr, YourContext cs)
            {
                userManager = usrMgr;
                this.roleManager = roleManager;
                _cs = cs;
            }
    
            public IActionResult Index()
            {
                return View(userManager.Users.Where(u => u.Tenant == tenant && u.isDeleted == false).ToList());
            }
    }

然后在你的視圖下

@model IEnumerable<YourProject.Areas.Identity.Data.AppUser>

<table>
 @foreach (var item in Model)
    {
<tr>
<td></td>
</tr>
    }
</table>

就我而言,這是因為我的AppUser.cs Model 中有一個 Id 字段。

刪除這些行

    public class AppUser : IdentityUser
    {
        [Key] //<----------- This one
        public string Id { get; set; }//<----------- And this one

是什么為我解決了它。 在此之后,我遇到的許多其他問題也得到了修復,例如 User.IsInRole 總是返回 false (實際上與用戶角色有關的任何其他問題)。

我花了整整 3 天的時間來解決這個問題,我希望這對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM