SaveChanges 后获取所有对象的标识

Get Identity of all objects after SaveChanges

我正在使用 Entity framework 同时插入对象,如下所示。

context = new MyContext();
foreach (var x in lstX)
{ 
    var abc = new abc{ name= x.abcName };
    context.abcs.Add(abc);

    var xyz = new xyz{ name = x.xyzName };
    context.xyzs.Add(xyz);
}

context.SaveChanges();

是否可以获取所有这些插入对象的标识?

当您调用 SaveChanges 时,Identity 字段会填充到原始实体上。因此要获取此id,只需存储对标识的引用并在SaveChanges之后访问它:

context = new MyContext();
List<abc> addedABCs = new List<abc>();
List<xyz> addedXYZs = new List<xyz>();
foreach (var x in lstX)
{ 
    var abc = new abc{ name= x.abcName };
    addedABCs.Add(abc);
    context.abcs.Add(abc);

    var xyz = new xyz{ name = x.xyzName };
    addedXYZs.Add(xyz);
    context.xyzs.Add(xyz);
}

context.SaveChanges();

foreach (var abc in addedABCs) 
{
    Console.WriteLine("Added item with ID {0}", abc.Id);
}