Batch persisting in Many-to-Many Entity with extra fields

Asked

Viewed 35 times

3

I have the following question: If I have an N to N relationship: Products and Coins. At the time it would persist would be 1 Product with a list of 10 Coins.

public class Produto {
    public int ProdutoId { get; set; }
    public string Nome { get; set; }
    public ICollection<Moedas> Moedas { get; set; }
}

public class Produto {
    public int ProdutoId { get; set; }
    public string Nome { get; set; }
    public ICollection<Produtos> Produtos { get; set; }
}

If I persist the Product, it already automatically creates the relationship of this product with the 10 coins.

var produto = new Produto() { Nome = "Espécie", Moedas = listaModas }
_context.Produto.Add(produto);

However and if I need a table with an extra field, I would have to stay like this:

public class Produto {
    public int ProdutoId { get; set; }
    public string Nome { get; set; }
    public ICollection<ProdutoMoeda> ProdutoMoedas { get; set; }
}

public class Produto {
    public int ProdutoId { get; set; }
    public string Nome { get; set; }
    public ICollection<ProdutoMoeda> ProdutoMoedas { get; set; }
}

public class ProdutoMoeda {
    public int ProdutoId { get; set; }
    public string Nome { get; set; }
    public int MoedaId { get; set; }
    public int ProdutoId { get; set; }
    public Moeda Moeda { get; set; }
    public Produto Produto { get; set; }
}

So I can no longer persist in batch as I could before. How would you persist if you received 1 Product with 10 Coins?

1 answer

3


Just stick to the logic.

var moedas = _context.Moedas.Where(...).ToList();
var produto = new Produto() 
{ 
    Nome = "Espécie"
};

foreach (var moeda in moedas)
{
    produto.ProdutoMoedas.Add(new ProdutoMoeda 
    {
        Moeda = moeda,
        Nome = "Meu Produto Relacionado a Moeda"
    });
}

_context.Produto.Add(produto);
  • Opa Gypsy, vlw once again. But the doubt is precisely in the product not having more a list of Coins. It is a list of Products that would be my table generated from Many-To-Many.

  • 1

    It’s just a matter of name. I’ve already changed.

  • 1

    Vlw Gypsy, gave it right.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.