如何使用Fluent NHibernate指定多列索引

Lan*_*nce 6 indexing nhibernate fluent-nhibernate

这里的目标是让我的完整数据库配置和模式生成由流畅的nhibernate处理.

有没有办法用Fluent nhibernate指定多列索引?

我知道您可以在单个属性/列上指定索引

像这样:

mapping.Map(x => x.ItemDt).Index("IX_DataTransferLog_ItemDt");
Run Code Online (Sandbox Code Playgroud)

如何指定多列?

如果这不可能,有没有办法将原始SQL语句添加到将在创建/更新架构后运行的配置?

小智 13

在XML映射中,可以通过向索引中需要的所有属性添加具有相同名称的索引来实现:

<property name="Name" index="MyIndex" />
<property name="RunTimeInMinutes" index="MyIndex" />
Run Code Online (Sandbox Code Playgroud)

不幸的是我没有任何目前正在使用Fluent NHibernate的项目我可以测试它,但我认为这在Fluent NHibernate中的工作原理相同:

mapping.Map(x => x.Name).Index("MyIndex");
mapping.Map(x => x.RunTimeInMinutes).Index("MyIndex");
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,您可以添加database-object在映射中创建索引所需的原始SQL .当使用SchemaExport创建数据库时,NHibernate将执行SQL.我不知道是否有用于映射数据库对象的Fluent版本,但您可以database-object使用XML进行映射并将映射文件添加到Fluent NHibernate的配置中.