Каркас сущности - получить идентификаторы, созданные с помощью savechanges - PullRequest
1 голос
/ 01 декабря 2010

Извиняюсь за вчерашний вопрос, но после некоторого сна я упростил свой вопрос.

В приведенном ниже примере я перебираю исходный объект objectquery и добавляю строки в таблицу Positions. После добавления всех новых строк и сохранения изменений создаются первичные ключи (столбец целочисленной идентичности).

foreach (var row in sourcetable)
        {
            var newpos = new Positions()
                {
                    Field1 = row.field,
                    Field2 = row.field2,
                    Field3 = row.field3

                };

        }

    Entities.savechanges

В EF 3.5 возможно ли получить доступ к списку всех первичных ключей, добавленных вышеуказанным процессом? Скажите что-то похожее на то, что можно сделать, используя оператор вывода в T-sql.

1 Ответ

2 голосов
/ 01 декабря 2010

Конечно. Вам нужно просто повесить список тех объектов, которые вы собираетесь сохранить, а затем осмотреть их после того, как они были сохранены:

List<Positions> _newItems = new List<Positions>();

foreach (var row in sourcetable)
{
    var newpos = new Positions()
    {
        Field1 = row.field,
        Field2 = row.field2,
        Field3 = row.field3

    };

    _newItems.Add(newpos);

}

Entities.SaveChanges();

foreach(Positions p in _newItems)
{
    Console.WriteLine("ID for new item is: {0}", p.ID);
}

После того, как элементы были сохранены, их поле, представляющее поле INT IDENTITY, должно автоматически обновляться EF без каких-либо дополнительных действий. Просто осмотрите поле!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...