Nhibernate PrimaryKeyNaming自动映射
我有一个关于使用PrimaryKeyNamingConvention的问题 假设以下类:Nhibernate PrimaryKeyNaming自动映射,nhibernate,fluent-nhibernate,naming-conventions,Nhibernate,Fluent Nhibernate,Naming Conventions,我有一个关于使用PrimaryKeyNamingConvention的问题 假设以下类: public class banco { [Required] public virtual int banco_id { get; set; } ... } 及 及 static AutoPersistenceModel CreateAutomappings() { …约定。设置(c=> { c、 添加(); }); 您可以使用上面描述的方法?当我尝试运行时,会发生错误 实体“b
public class banco
{
[Required]
public virtual int banco_id { get; set; }
...
}
及
及
static AutoPersistenceModel CreateAutomappings()
{
…约定。设置(c=>
{
c、 添加();
});
您可以使用上面描述的方法?当我尝试运行时,会发生错误
实体“banco”未映射Id。请使用Id方法映射您的标识属性。例如:Id(x=>x.Id)。您可以使用此类Id。但您不仅需要映射列名,还需要映射属性 [编辑]从中添加的代码
我的FluentNHibernate版本是1.2sorry,但是你能举个例子吗,按照告诉我的链接操作,但是可能我很笨拙,我找不到正确的方法。这可能不是最好的解决方案,但我可以使用
.Override(map=>{map.Id(x=>x.bancoId);})来纠正它。
public class PrimaryKeyNamingConvention : IIdConvention
{
public void Apply(IIdentityInstance instance)
{
instance.Column(instance.EntityType.Name + "_id");
}
}
static AutoPersistenceModel CreateAutomappings()
{
... Conventions.Setup(c =>
{
c.Add<PrimaryKeyNamingConvention>();
});
public class AutomappingConfiguration : DefaultAutomappingConfiguration
{
public override bool IsId(Member member)
{
return member.Name == member.DeclaringType.Name + "Id";
}
}