我使用foreach循环将多个对象保存到数据库。 保存这些后,我想用保存对象的ID做一些事情 这是我的插入循环:
foreach (var Object in ListOfObjects)
{
Object obj = new Object();
obj.Objectvalue1 = Object.Value1;
obj.Objectvalue2 = Object.Value2
db.Objects.Add(obj);
}
db.SaveChanges();
我想做的是以下内容:
List<int> IDs = new List<int>();
foreach (var Object in ListOfObjects)
{
Object obj = new Object();
obj.Objectvalue1 = Object.Value1;
obj.Objectvalue2 = Object.Value2
db.Objects.Add(obj);
IDs.Add(obj.ID) //this should be the Primary key
}
db.SaveChanges();
最后一个示例无法正常工作,因为ID将为空,您首先要将数据保存到数据库中以填充ID,但我不想为我要插入的每个对象保存。
我看到了一些获取ID的Questions,但这些都是用于插入单个对象,而不是多个。
总结:有没有办法获取插入记录的id的列表或数组。
答案 0 :(得分:1)
您只需保存添加到数据库的已创建对象即可。因此,当您创建数据对象时,将其添加到列表中,然后在执行SaveChanges之后,每个对象都将具有其ID,并且可以使用
轻松检索dataObjectList.Select((o) => o.ID).ToList();