C# NHibernate/FluentNHibernate复合id camel大小写命名约定

C# NHibernate/FluentNHibernate复合id camel大小写命名约定,c#,nhibernate,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,C#,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,有人能告诉我如何在NHibernate中定义CompositeId()的命名约定吗 我尝试实施了ICompositeIdentityConvention(不起作用): 其他接口(IPropertyInstance,IVersionInstance,IIdentityInstance)具有instance.Column(“此处的列名”)方法,但我在该接口上找不到任何 我试图循环使用instance.KeyProperties,但也没有结果 谢谢。也许这个例子有助于您实现以下目标: class Co

有人能告诉我如何在NHibernate中定义CompositeId()的命名约定吗

我尝试实施了ICompositeIdentityConvention(不起作用):

其他接口(
IPropertyInstance
IVersionInstance
IIdentityInstance
)具有
instance.Column(“此处的列名”)方法,但我在该接口上找不到任何

我试图循环使用instance.KeyProperties,但也没有结果


谢谢。

也许这个例子有助于您实现以下目标:

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