2015-06-19 37 views
1

我在同一时间使用实体框架,像下面插入对象后获取的所有对象的身份。的SaveChanges

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

是否有可能得到所有这些插入的对象的身份?

回答

5

当您调用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); 
}