FluentNHibernate:只是另一个映射问题

时间:2011-09-13 21:20:17

标签: fluent-nhibernate

应该使用哪个约定来更改CompositeId().KeyReference(x=>x.Key,/*THIS PART*/)方法的列名?我已经在FluentNHibernate.Conventions中使用了所有可用的约定,但仍未找到答案。

提前致谢

1 个答案:

答案 0 :(得分:1)

现在仍然不可能(FNH 1.2),除了一些反射魔法

class CompositeKeyConvention : ICompositeIdentityConvention
{
    public void Apply(ICompositeIdentityInstance instance)
    {
        var columninspector = instance.KeyManyToOnes.First(k => k.Name == "Key").Columns.First();

        var columnmapping = (ColumnMapping)columninspector.GetType().GetField("mapping", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic).GetValue(columninspector);

        columnmapping.Name = "mycolumnname";
    }
}