bre*_*ain 5 sql-server nhibernate nhibernate-mapping nhibernate-mapping-by-code
花了一段时间才找到答案,以为我会分享爱情.
当使用NHibernate通过代码与SQL Server的新映射时,我无法保存实体.保存实体时,将抛出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);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道如何使用XML映射来映射它,但我希望尽可能使用代码内置的映射.
bre*_*ain 10
经过一些在论坛上挖掘后我很幸运,并找到了如何映射这个.Fabio提供的示例非常好,如果您要使用GUID作为ID或类似的东西,但如果您想使用身份ID(也看到其他一些ID),您需要指定您是哪个生成器打算用.这是我更新的映射有效:
public class UserMapping : ClassMapping<User>
{
public UserMapping()
{
Id(x => x.Id, map => map.Generator(Generators.Identity));
Property(x => x.Name);
Property(x => x.Username);
Property(x => x.Password);
Property(x => x.DailyPoints);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5343 次 |
最近记录: |