0

Can someone direct me how to define a naming convention for CompositeId() in NHibernate?

I tried implementing ICompositeIdentityConvention (not working) :

public void Apply(ICompositeIdentityInstance instance)
{
    instance.Access.CamelCaseField(CamelCasePrefix.Underscore);
}

The other interfaces (IPropertyInstance, IVersionInstance, IIdentityInstance) has instance.Column("Column name here"); method, but I can't find any on that interface.

I tried to loop through instance.KeyProperties with no result either.

Thanks.

Samuel Adam
  • 1,327
  • 4
  • 26
  • 45

1 Answers1

1

Maybe this example helps to get you where you want to:

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 = "IdColName";
    }
}
MichaC
  • 13,104
  • 2
  • 44
  • 56