是否有一个流畅的NHibernate方法来索引所有的外键而不编码

本文关键字:编码 有一个 NHibernate 是否 方法 索引 | 更新日期: 2023-09-27 17:53:59

这可能吗?我有数百个表和无数的关系,我希望所有的外键都被索引,我讨厌编写代码。

在@Vadim的帮助下,我做到了:

var fkIndexConvention = ConventionBuilder.Reference.Always(x =>
    x.Index(string.Format("ix{0}_{1}_{2}", x.Class.Name, x.Property.Name,
    Guid.NewGuid().ToString().Replace("-", string.Empty))));

…然后将它添加到我的流畅配置中:

var fluent = Fluently.Configure(config)
    .Mappings(m => m.FluentMappings.Conventions.Add(fkIndexConvention));

是否有一个流畅的NHibernate方法来索引所有的外键而不编码

我假设您正在谈论使用hbm2ddl工具和SchemaExport。

你所需要做的就是设置一个引用约定。由于IManyToOneInstance隐藏了外键,您应该能够将实例强制转换为IManyToOneInspector

ConventionBuilder.Reference.Always(x => x.Index(((IManyToOneInspector)x).ForeignKey + "Index"));