如何获取插入ID的列表?

时间:2014-02-07 22:11:00

标签: c# linq-to-entities

我想在DB中添加新行后获取所有ID。

我尝试了这个,但给了我一个例外 - >为Id

返回0
foreach (var s in ss)
{
    Table t1 = new Table();

    ...
    ...

    _entities.Table.Add(t1);

    Ids.Add(ID); // <--- trying to get Ids here.
}

_entities.SaveChanges();

TIA

1 个答案:

答案 0 :(得分:3)

通常,您的实体会有一个ID属性,在调用SaveChanges()之后会更新。所以你可以这样做:

List<int> Ids = new List<int>();
foreach (var s in ss)
{
    Table t1 = new Table();
    ...
    _entities.Table.Add(t1);
    _entities.SaveChanges();

    Ids.Add(t1.ID);
}

或者这个:

List<Table> insertedTables = new List<Table>();
foreach (var s in ss)
{
    Table t1 = new Table();
    ...
    _entities.Table.Add(t1);

    insertedTables.Add(t1);
}
_entities.SaveChanges();

List<int> Ids = insertedTables.Select(t => t.ID).ToList();