第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Linq 按 where 語法選擇分組

Linq 按 where 語法選擇分組

C#
動漫人物 2022-06-12 10:59:33
我有這些課程:User {    //identity user class    public IList<Proyecto> Proyectos { get; set; }    public bool IsImportant { get; set }}Proyecto{   public Guid Id { get; set; }   // more properties here    }我要做的是按 userId 對他們創(chuàng)建的所有項目進行分組,并且在哪里IsImportant是真的。我試過這個  var usuariosRobotVmInDb =await  _dbContext.Users.Include(p=>p.Proyectos)            .groupby(u=>u.id)            .Where(u => u.IsImportant== True)            .Select(x=> new usuariosRobotViewModel            {                Id=x.Id,                Name=x.Name,                LastName=x.LastName,                Phone=x.Phone,                Email=x.Email,                proyectosVms=x.Proyectos.Select(a=>new ProyectosVm {Id=a.Id,Date=a.Date})            }).ToListAsync();但似乎我不能使用 groupBy 和 where 子句......我該如何解決這個問題?謝謝
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

當您使用導航屬性并且項目已經是您的User類的屬性時,您不需要按任何內容進行分組。只需檢索Important正確的用戶:

 var result = await _dbContext.Users.Include(p => p.Proyectos)
                              .Where(u => u.IsImportant);

(當然,您可以將投影添加到usuariosRobotViewModel對象)


查看完整回答
反對 回復 2022-06-12
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

LINQ 的問題在于,開發(fā)人員仍在以 SQL 方式思考并嘗試將其轉換為 LINQ,這有時不起作用,有時也不是最優(yōu)的。在您的情況下,當您包含對象時,您正在使用導航屬性,并且 LINQ 已經知道和對象Proyectos之間的關系,因此您不需要分組或執(zhí)行任何其他操作:UserProyectos


var usuariosRobotVmInDb = await _dbContext.Users.Include(p => p.Proyectos)

        .Where(u => u.IsImportant) //Same as u.IsImportant == true

        .Select(x => new usuariosRobotViewModel {

            Id = x.Key,

            Nombre = x.Nombre,

            ...

        }).ToListAsync();


查看完整回答
反對 回復 2022-06-12
  • 2 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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