【问题标题】:FluentNHibernate: Just another Mapping QuestionFluentNHibernate:只是另一个映射问题
【发布时间】:2011-09-13 21:20:17
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: fluent-nhibernate


    【解决方案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";
        }
    }
    

    【讨论】:

    • 如何更改类型?我正在尝试使枚举使用 int。 .KeyProperty(x => x.EnumKey, x => x.ColumnName("EnumKey").Type(typeof(EnumKeyType)))
    猜你喜欢
    • 2012-01-21
    • 2011-08-25
    • 1970-01-01
    • 2012-03-14
    • 2011-11-17
    • 2011-11-19
    • 2015-09-09
    • 2014-10-03
    • 2010-11-27
    相关资源
    最近更新 更多