Мне потребовалось время, чтобы найти ответ на этот вопрос, поэтому я подумал, что разделю любовь.
При использовании нового сопоставления 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, но я хочу использовать встроенное сопоставление по коду, если это вообще возможно.