Took me a while to find an answer for this so thought I'd share the love.
When using NHibernate's new mapping by code with SQL Server I'm unable to save an entity. When saving an entity a System.Data.SqlClient.SqlException is thrown with the following message (minus the table name):
"Cannot insert explicit value for identity column in table 'DietUser' when IDENTITY_INSERT is set to OFF."
My table uses an identity ID and the entity & mappings look like this:
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);
}
}
I know how I'd map this using XML mapping but I want to use the built-in mapping by code if at all possible.