简短版本:
当我保存实体时,在 NHibernate 3.3 中使用约定时不会更新 id 属性
详细版本:
实体 ID 属性
public virtual Guid GuitarId { get; protected set; }
有了这个映射,我的实体被正确保存在数据库中,但我的实体的 id 没有被填充,即使当我尝试加载我的实体时,它们也被简单地忽略了......
mapper.BeforeMapClass += (model, type, classCustomizer) =>
{
classCustomizer.Id(x =>
{
x.Column(type.Name + "Id");
x.Generator(Generators.GuidComb);
});
};
试图获取一个保存的实体,我填充了我的实体的所有字段,除了 Id,我试图访问 id 属性以防万一它被延迟加载但没有运气:
var g = session.Get<Guitar>(existingId);
如果我覆盖实体的 id 映射,我会在保存后正确填充 id 属性
mapper.Class<Guitar>(map =>
{
map.Id(x => x.GuitarId, x =>
{
x.Generator(Generators.GuidComb);
});
});
所以问题出在BeforeMapClass
事件中,有什么建议吗?
我错过了什么吗?或者这是一个错误?