[英]SaveChanges() inside foreach, to get ID inserted
I'm trying to insert inside a foreach and then get the ID inserted to insert this ID in another table (head and detail).我正在尝试在 foreach 中插入,然后插入 ID 以将此 ID 插入另一个表(头部和详细信息)。 And I have 2 foreach inside another.
我在另一个里面有 2 个 foreach。 I'm using entity framework.
我正在使用实体框架。
var remisiones = dbLocal.Database.SqlQuery<datosConsulta>(qDocumento).ToList();
foreach (var x in remisiones)
{
var bcDoc = new bcDocumentos();
bcDoc.cfecha = Convert.ToDateTime(x.CFECHA);
dbLocal.bcDocumentos.Add(bcDoc);
dbLocal.SaveChanges();
int idBcDocumento = bcDoc.id_documento; // I NEED TO GET THIS ID INSERTED
foreach (var z in movimientos)
{
var bcMovs = new bcMovimientos();
bcMovs.id_documento = idBcDocumento; // TO INSERT HERE IN THE DETAIL TABLE
dbLocal.bcMovimientos.Add(bcMovs);
dbLocal.SaveChanges();
int idBcMovimiento = bcMovs.id_movimiento; // AND THEN GET THE NEW ID FO THE DETAIL
}
}
If you have specified the id_documento
field in the database as Identity
, you can use the following code, otherwise change id_documento to Identity.如果您已将数据库中的
id_documento
字段指定为Identity
,则可以使用以下代码,否则将 id_documento 更改为 Identity。
int idBcDocumento = dbLocal.bcDocumentos.OrderByDescending(p => p.id_documento).First().id_documento;
full code完整代码
var remisiones = dbLocal.Database.SqlQuery<datosConsulta>(qDocumento).ToList();
foreach (var x in remisiones)
{
var bcDoc = new bcDocumentos();
bcDoc.cfecha = Convert.ToDateTime(x.CFECHA);
dbLocal.bcDocumentos.Add(bcDoc);
dbLocal.SaveChanges();
int idBcDocumento = dbLocal.bcDocumentos.OrderByDescending(p => p.id_documento).First().id_documento; // I NEED TO GET THIS ID INSERTED
foreach (var z in movimientos)
{
var bcMovs = new bcMovimientos();
bcMovs.id_documento = idBcDocumento; // TO INSERT HERE IN THE DETAIL TABLE
dbLocal.bcMovimientos.Add(bcMovs);
dbLocal.SaveChanges();
int idBcMovimiento = dbLocal.bcMovs.OrderByDescending(p => p.id_movimiento).First().id_movimiento; // AND THEN GET THE NEW ID FO THE DETAIL
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.