C#将多个对象保存到数据库后获取一个列表或数组

时间:2015-12-02 18:36:52

标签: c# mysql arrays entity-framework list

我使用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的列表或数组。

1 个答案:

答案 0 :(得分:1)

您只需保存添加到数据库的已创建对象即可。因此,当您创建数据对象时,将其添加到列表中,然后在执行SaveChanges之后,每个对象都将具有其ID,并且可以使用

轻松检索
dataObjectList.Select((o) => o.ID).ToList();