亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何包含單個用戶的交易

如何包含單個用戶的交易

C#
慕尼黑8549860 2023-08-20 15:26:10
我正在嘗試獲取一個用戶,包括他來自另一個表的所有交易。用戶和交易之間存在一對多的關系。當我獲得用戶時,如何包含我的交易?public class User{        [Key]        public int id{get;set;}        public string FirstName{get;set;}        public string LastName{get;set;}        public string Email{get;set;}        public string Password{get;set;}        public DateTime CreatedAt{get;set;} = DateTime.Now;        public DateTime UpdatedAt{get;set;} = DateTime.Now;        public List<Transaction> Transactions{get;set;}        [NotMapped]        public string ConfirmPassword{get;set;}    }#Controller[HttpGet("account")]        public IActionResult Account(){            User user = context.Users.FirstOrDefault(u => u.id == HttpContext.Session.GetInt32("user"))                .Include(u => u.Transactions);            return View("account", user);        }我只是希望在傳遞到視圖時將交易包含在用戶中。我不明白該怎么做。現在它告訴我“用戶不包含包含的定義”我該如何完成此操作?
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

解決方案 1:在 IQueryable 上執行查詢之前,必須包含相關表,如下所示:


var userId = HttpContext.Session.GetInt32("user");


User user = _context.Users.Where(u => u.id == userId)

    .Include(u => u.Transactions)

    .AsNoTracking()

    .FirstOrDefault();

解決方案 2:您可以選擇具有該用戶交易列表的用戶,如下所示:


var userId = HttpContext.Session.GetInt32("user");


User user = _context.Users

    .AsNoTracking()

    .Where(u => u.id == userId)

    .Select(u => new User

    {

        //Select all properties like this :

        FirstName = u.FirstName,

        LastName = u.LastName,

        //... Other properties,

        Transactions = u.TransActions.Select(t => new TransationViewModel

        {

            //Select all properties like this :

            //Name = t.Name

        }).ToList()

    })

    .FirstOrDefault();


查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號