I do it in these ways.
1:
var cierre = db.Cierres.Add(a); // Maestra de cierre
foreach (var item in lstEntidades)
{
var entidadCierre = new Entidad(){
EntidadID = item.Id,
CierreID = cierre.Id
Descripcion = item.Descripcion
}
db.Entidades.Add(entidadCierre);
}
db.SaveChanges();
2:
Use this method to add and return the Inserted Id
public async Task<int> AddCierre(Cierre newCierre)
{
try
{
var cierre = _context.Cierres.Add(newCierre);
await _context.SaveChangesAsync();
return cierre.Id;
}
catch (Exception ex)
{
throw ex;
}
}
Driver
public async Task<ActionResult> Nuevo(RolViewModel model)
{
var newCierre = new Cierre(); // Armar según tu necesidad
int cierreId = await AddCierre(newCierre); // Id retornado solo quedaría insertar las relaciones con este Id
using (var db = new DbContext())
{
foreach (var item in lstEntidades)
{
var entidadCierre = new Entidad(){
EntidadID = item.Id,
CierreID = cierreId,
Descripcion = item.Descripcion
}
db.Entidades.Add(entidadCierre);
}
db.SaveChanges();
}
}
I hope you serve them