Использование отображения NHibernate по коду: Невозможно вставить явное значение для столбца идентификаторов в таблицу 'DietUser', когда IDENTITY_INSERT установлено в OFF

Мне потребовалось время, чтобы найти ответ на этот вопрос, поэтому я подумал, что разделю любовь.


При использовании нового сопоставления NHibernate с помощью кода с SQL Server я не могу сохранить объект. При сохранении объекта возникает исключение System.Data.SqlClient.SqlException со следующим сообщением (без имени таблицы):

«Невозможно вставить явное значение для столбца идентификаторов в таблицу 'DietUser', если для IDENTITY_INSERT установлено значение OFF.»

В моей таблице используется идентификатор идентичности, а сущность и сопоставления выглядят следующим образом:

public class User
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }
    public virtual short DailyPoints { get; set; }
}

public class UserMapping : ClassMapping<User>
{
    public UserMapping()
    {
        Id(x => x.Id);
        Property(x => x.Name);
        Property(x => x.Username);
        Property(x => x.Password);
        Property(x => x.DailyPoints);
    }
}

Я знаю, как бы сопоставить это с помощью сопоставления XML, но я хочу использовать встроенное сопоставление по коду, если это вообще возможно.

5
задан Stefan Steinegger 2 September 2011 в 07:59
поделиться