получение значения строки идентификатора с помощью ADO.NET Entity - PullRequest
1 голос
/ 29 апреля 2011

У меня есть следующая таблица в базе данных SQL Server 2008:

User
--------------------------------------------------------
Id           Numeric(18, 0) | Identity(1, 1) PK not null
Name         Nchar(20)      | Not null

Я использую модель данных объекта ADO.NET, чтобы сделать:User.Id для нового пользователя добавлен?

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Если ваша модель настроена правильно, и у вас есть свойство Id, помеченное StoreGeneratedPattern.Identity, вам нужно просто вызвать это:

    var user = new User()
    {
        Name = userName
    };
    entities.User.AddObject(user);
    resultCode = 1;
    entities.SaveChanges();
    int id = user.Id; // it's here
1 голос
/ 29 апреля 2011

Попробуйте сохранить ссылку на объект пользователя. После вызова SaveChanges () идентификатор должен автоматически обновляться. Вот модификация вашего кода для демонстрации:

if (entities.User.Count(u => u.Name == userName) == 0)
{
    User newUser = new User()
    {
        Name = userName
    };
    entities.User.AddObject(newUser);
    resultCode = 1;
    entities.SaveChanges();

    // newUser.Id should be populated at this point.
}
...