C# 如何使用EF用列表填充对象

C# 如何使用EF用列表填充对象,c#,sql,entity-framework,linq,visual-studio-2012,C#,Sql,Entity Framework,Linq,Visual Studio 2012,如何使用此模型的EF和linq填充列表字段 public class Infraccion { public int IdInfraccion { get; set; } public string Serie { get; set; } public int Numero { get; set; } public Direccion Direccion { get; set; } public string Comentario { get; set;

如何使用此模型的EF和linq填充列表字段

public class Infraccion
{
    public int IdInfraccion { get; set; }
    public string Serie { get; set; }
    public int Numero { get; set; }
    public Direccion Direccion { get; set; }
    public string Comentario { get; set; }
    public DateTime Fecha { get; set; }
    public DateTime Hora { get; set; }
    public string Dominio { get; set; }
    public List<Contravencion> ListaDeContravenciones = new List<Contravencion>(); 
}
到目前为止,这就是我所拥有的

var listadoInfracciones = (from u in _context.Usuario
                           join ui in _context.UsuarioInfracciones on u.UsuarioId equals ui.UserId 
                           join i in _context.Infraccion on ui.InfraccionId equals i.InfraccionId
                           join d in _context.Direcciones on i.IdDireccion equals d.DireccionId
                           where ui.UserId == usuario.IdUsuario
                           select new Infraccion 
                           {
                               Comentario = i.Comentario,
                               Direccion = new Direccion
                               {
                                   Calle = d.Calle, 
                                   Entre1 = d.Interseccion1, 
                                   Entre2 = d.Interseccion2
                               }, 
                               Dominio = i.Dominio, 
                               Fecha = i.Fecha, 
                               Numero = i.Numero, 
                               Serie = i.Serie, 
                               ListaDeContravenciones = new List<Contravencion>()
                           }).ToList();
哪里找不到正确的方法来填写违规者名单。以下是DB模型:

我已经看到了这些帖子,但不符合我的需要
好的,我找到了解决问题的方法。我很确定这不是最好的方法,但我至少有一个结果。如果有人能完全用linq做到这一点,我当然知道这不仅对我有帮助,而且对整个社区都有帮助。这是我的密码:

var listadoInfracciones = (from u in _context.Users
                       join ui in _context.User_Infraccion on u.UsuarioId equals ui.UserId 
                       join i in _context.Infraccions on ui.InfraccionId equals i.InfraccionId
                       join d in _context.Direccions on i.IdDireccion equals d.DireccionId
                       where ui.UserId == usuario.IdUsuario
                       select new Infraccion 
                       {
                           Comentario = i.Comentario,
                           Direccion = new Direccion
                           {
                               Calle = d.Calle, 
                               Entre1 = d.Interseccion1, 
                               Entre2 = d.Interseccion2
                           }, 
                           Dominio = i.Dominio, 
                           Fecha = i.Fecha, 
                           Numero = i.Numero, 
                           Serie = i.Serie,
                           IdInfraccion = i.InfraccionId
                       }).ToList();

        foreach (var inf in listadoInfracciones)
        {
            var test = (from contra in _context.Contravencions
                        where contra.Infraccion_Contravencion.Any(c => c.InfraccionId == inf.IdInfraccion)
                        select new Contravencion
                        {
                            Articulo = contra.Articulo,
                            Inciso = contra.Inciso,
                            UfijasMaximo = contra.UFijasMax,
                            UfijasMinimo = contra.UFijasMin,
                            Descripcion = contra.Descripcion,
                            IdContravencion = contra.ContravencionId
                        }).ToList();
            inf.ListaDeContravenciones = test;
        }

干杯

你试过listadeinvolleciones=i.listadeinvolleciones吗?你看到我现在的这些了吗?但是你如何将这个列表放入另一个列表中呢。我必须按用户筛选我的基础设施表,然后获取每个基础设施的所有信息。附言:评论1并没有解决我的问题。
var listadoInfracciones = (from u in _context.Users
                       join ui in _context.User_Infraccion on u.UsuarioId equals ui.UserId 
                       join i in _context.Infraccions on ui.InfraccionId equals i.InfraccionId
                       join d in _context.Direccions on i.IdDireccion equals d.DireccionId
                       where ui.UserId == usuario.IdUsuario
                       select new Infraccion 
                       {
                           Comentario = i.Comentario,
                           Direccion = new Direccion
                           {
                               Calle = d.Calle, 
                               Entre1 = d.Interseccion1, 
                               Entre2 = d.Interseccion2
                           }, 
                           Dominio = i.Dominio, 
                           Fecha = i.Fecha, 
                           Numero = i.Numero, 
                           Serie = i.Serie,
                           IdInfraccion = i.InfraccionId
                       }).ToList();

        foreach (var inf in listadoInfracciones)
        {
            var test = (from contra in _context.Contravencions
                        where contra.Infraccion_Contravencion.Any(c => c.InfraccionId == inf.IdInfraccion)
                        select new Contravencion
                        {
                            Articulo = contra.Articulo,
                            Inciso = contra.Inciso,
                            UfijasMaximo = contra.UFijasMax,
                            UfijasMinimo = contra.UFijasMin,
                            Descripcion = contra.Descripcion,
                            IdContravencion = contra.ContravencionId
                        }).ToList();
            inf.ListaDeContravenciones = test;
        }