Persisting in batch in Many-to-Many Entity with extra fields

3

I have the following question: If I have a relationship N for N ex: Products and Coins. Whenever it persists, there 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 that product with the 10 currencies.

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

But if I need a table with an extra field, it would look 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 not persist in batch as I could before. How would you persist if you received 1 Product with 10 Coins?

    
asked by anonymous 17.05.2017 / 18:42

1 answer

3

Just continue 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);
    
17.05.2017 / 18:56