gpt4 book ai didi

c# - 在模型和 AspNetUsers 之间加入(包含)

转载 作者:行者123 更新时间:2023-11-29 21:30:03 24 4
gpt4 key购买 nike

有几次,我需要获取 AplicationUsers (aspnetusers) 中的用户名。就像在 Chamado 模型(表)中一样,我有一列 Id_Agente(用户)。通过一个简单的列表,我会得到类似的内容:

“3q0aju9-9ijuso-9sodkci...”

public class Chamado
{
public int Id { get; set; }
public DateTime Abertura { get; set; }
public string Titulo { get; set; }
public string Descricao { get; set; }
public string Id_Agente { get; set; }

[NotMapped]
public String NomeAgente { get; set; }
}

为了解决这个问题,我创建了一个 NotMapped 字段并用 foreach 填充它:

using (IdentityContext id2 = new IdentityContext())
{
foreach (var item in historicos)
{
item.NomeAgente = id2.Users
.Where(u => u.Id == item.Id_Agente)
.Select(u => u.Nome).FirstOrDefault();
}
}

但现在我需要按 Agente 对 Chamados 进行分组,而且它变得越来越难解决。我尝试在名为 Qtde 的 chamados 模型上制作另一个 notMapped,制作一个列表并从该列表中提取,但返回了一个错误:

public List<PainelChamados> ListarOrdem()
{
using (SistemaContext db = new SistemaContext())
{

var chamados = db.Chamado
.Where(c => c.Situacao != Chamado.Esituacao.Concluido)
.GroupBy(c => c.Id_Agente)
.Select(c => new Chamado { Id_Agente = c.Key, Qtde = c.Count() });

using (IdentityContext id2 = new IdentityContext())
{
foreach (var item in chamados)
{
item.NomeAgente = id2.Users
.Where(u => u.Id == item.Id_Agente)
.Select(u => u.Nome).FirstOrDefault();
}
}

var query = chamados
.Select(c => new PainelChamados
{
Agente = c.NomeAgente,
Qtde = c.Qtde

});

return query.ToList();
}
}

最后但并非最不重要的一点是,我如何才能像另一个常规表一样包含 aspnetusers 表:

var query = db.Suporte_Projeto
.Include(l => l.Licenciado)
.Include(c => c.Condominio)
.Include(pr => pr.ProjetoProduto)
.Include(p => p.ProjetoAcesso);

Chart Data

Error

最佳答案

我又做了一个解决办法!当我无法将 aspnetusers 添加到我的模型表时,这似乎是一个不错的选择:

public List<PainelChamados> ListarOrdem()
{
using (SistemaContext db = new SistemaContext())
{
var query = db.Chamado
.Where(c => (c.Situacao != Chamado.Esituacao.Concluido && c.Id_Agente != null))
.GroupBy(e => new { e.Id_Agente})
.Select(lg => new PainelChamados
{
CodAgente = lg.Key.Id_Agente,
Qtde = lg.Count()
});

UsuarioData ud = new UsuarioData();
List<PainelChamados> Lista = new List<PainelChamados>();

foreach (var item in query)
{
Lista.Add(new PainelChamados
{
CodAgente = item.CodAgente,
Agente = item.CodAgente == null ? string.Empty : ud.GetAgenteId(item.CodAgente),
Qtde = item.Qtde
});
}
return Lista;
}
}

您认为这是最好的解决方法吗?我可以返回我想要的列表。

Chart With Agente Names

关于c# - 在模型和 AspNetUsers 之间加入(包含),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com