Nhibernate PrimaryKeyNaming自动映射

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

我有一个关于使用PrimaryKeyNamingConvention的问题 假设以下类:

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";
    }
}