Установка Manually идентификатор

У меня есть таблица Users, где поле "ID" является полем GUID.

Используя ASPNET я создаю учетную запись пользователя и возвращаю GUID. Я пытаюсь создать связанные записи в своих таблицах со что GUID как основной идентификатор.

Проблема, с которой я сталкиваюсь, является этим, когда я вручную установил Пользователей. Идентификатор NHibernate пытается сделать Обновление, не Вставку. Я вижу это с Профилировщиком NHibernate, прежде чем это разбомбит с "Неожиданным количеством строки: 0; Ожидаемый: 1 дюйм.

Мой UsersMap для таблицы Users похож:

public class UsersMap : ClassMap<Users>
{
    public UsersMap()
    {
        Id(x => x.ID, "ID"); //GUID

        Map(x => x.Name, "Name"); //string
        Map(x => x.PhoneNumber, "PhoneNumber"); //string
        Map(x => x.FaxNumber, "FaxNumber"); //string
        Map(x => x.EmailAddress, "EmailAddress"); //string

        HasMany<UsersAddressBook>(x => x.usersAddressBook).KeyColumn("ID");
    }
}

Какие-либо идеи?Заранее спасибо.

7
задан Michael D. Kirkpatrick 3 June 2010 в 22:05
поделиться

2 ответа

Вам необходимо указать, что вашему идентификатору будет назначено .

Id(x => x.ID)
  .GeneratedBy.Assigned();

Это позволит вам указать значение без попытки NHibernate выполнить обновление.

17
ответ дан 6 December 2019 в 10:47
поделиться

ISession.Save имеет перегрузку, позволяющую указать идентификатор. Попробуйте использовать его и не устанавливайте свойство id вручную.

1
ответ дан 6 December 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: