1: N Fluent API Mapping Cascade

1

How to model a 1: N relationship, where 1 user can have multiple requests, and in this request we have reference to another entity ? Ex:

public class Usuario
{
   public int UsuarioId { get; set; }
   public string Name {get; set; }

   public ICollection<Pedido> Pedidos {get; set;}
}

public class Pedido
{
   public int PedidoId { get; set; }
   public DateTime PedidoDate {get; set;}

   public ICollection<Produto> Produtos {get; set;} 
}

public class Produto
{
   public int ProdutoId {get; set;}
   public string ProdutoNome {get; set;}
}

Note: Using the Fluent Api feature with mappings ...

    
asked by anonymous 21.06.2016 / 23:21

1 answer

4

There is no need to use Fluent Api in your case, simply add the properties of inverse relationships, for example:

public class Usuario
{
   public int UsuarioId { get; set; }
   public string Name {get; set; }

   public ICollection<Pedido> Pedidos {get; set;}
}
public class Pedido
{
   public int PedidoId { get; set; }
   public DateTime PedidoDate {get; set;}

   public int UsuarioId{get;set;

   public Usuario Usuario{get;set;}
   public ICollection<Produto> Produtos {get; set;} 
}
public class Produto
{
   public int ProdutoId {get; set;}
   public string ProdutoNome {get; set;}
   //Se um produto for apenas de um pedido adicione a referência aqui também
   //Se a relação entre produto x pedido for de N:N, crie uma entidade associativa.
}

In this way, you already have what you want. However, if you really want to do Fluent Api , just do so:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{

        modelBuilder.Entity<Pedido>()
                    .HasRequired<Usuario>(s => s.Usuario) 
                    .WithMany(s => s.Pedidos);

}
    
22.06.2016 / 00:02