在SaveChanges之后获取所有对象的标识

时间:2015-06-19 12:10:16

标签: c# entity-framework-5

我使用下面的Entity框架同时插入对象。

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();

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

1 个答案:

答案 0 :(得分:6)

调用SaveChanges时,会在原始实体上填充“身份”字段。因此,要获取此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);
}