【发布时间】:2015-12-02 18:36:51
【问题描述】:
我正在使用 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,但我不想为我插入的每个对象保存。
我看到一些Questions 获取 ID,但这些都是用于插入单个对象,而不是多个。
总结:有没有办法获取插入记录的 id 的列表或数组。
【问题讨论】:
-
在保存对象后枚举对象以获取其 ID
-
@KiwiPiet 这不会给我该表中的所有对象 ID,而不仅仅是插入的对象吗?
-
很确定您可以在填充对象列表之后执行 AddRange,然后在 SaveChanges 之后您将获得 ID 列表。而不是在 foreach 中使用 Add 进行迭代。
标签: c# mysql arrays entity-framework list