我花了一段时间才找到答案,所以我想我会分享这份爱。
当通过 SQL Server 使用 NHibernate 的新代码映射时,我无法保存实体。保存实体时会抛出 System.Data.SqlClient.SqlException 并显示以下消息(减去表名):
“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'DietUser' 中插入标识列的显式值。”
我的表使用身份 ID,实体和映射如下所示:
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 映射来映射它,但如果可能的话,我想通过代码使用内置映射。