nhibernate – PrimaryKeyNamingConvention流利的自动映射

我有一个关于使用PrimaryKeyNamingConvention的问题

假设以下类:

public class banco
{
    [Required]
    public virtual int banco_id { get; set; }
   ...
}

public class PrimaryKeyNamingConvention : IIdConvention
{
    public void Apply(IIdentityInstance instance)
    {
        instance.Column(instance.EntityType.Name + "_id");
    }
}

 static AutoPersistenceModel CreateAutomappings()
 {
 ... Conventions.Setup(c =>
            {
                c.Add<PrimaryKeyNamingConvention>();
             });

你可以使用上面描述的东西吗?当我尝试运行时发生错误

实体’banco’没有Id映射.使用Id方法映射您的标识属性.例如:Id(x => x.Id).

最佳答案 你可以使用这样的ID.但是您不仅要映射列名,还要映射属性
name.

[编辑]从this question添加的代码

public class AutomappingConfiguration : DefaultAutomappingConfiguration
{
    public override bool IsId(Member member)
    {
        return member.Name == member.DeclaringType.Name + "Id";
    }
}
点赞