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

如何使用Fluent NHibernate指定多列索引,nhibernate,fluent-nhibernate,indexing,Nhibernate,Fluent Nhibernate,Indexing,这里的目标是让fluent nhibernate处理我的完整数据库配置和模式生成 有没有办法用Fluent nhibernate指定多列索引 我知道您可以在单个属性/列上指定索引 像这样: mapping.Map(x => x.ItemDt).Index("IX_DataTransferLog_ItemDt"); 如何指定多个列 如果不可能,是否有方法将原始SQL语句添加到将在创建/更新架构后运行的配置中?在XML映射中,可以通过向索引中需要的所有属性添加同名索引来实现这一点: <

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

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

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

像这样:

mapping.Map(x => x.ItemDt).Index("IX_DataTransferLog_ItemDt");
如何指定多个列


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

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

<property name="Name" index="MyIndex" />
<property name="RunTimeInMinutes" index="MyIndex" />

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

我已经对其进行了测试,结果是:mapping.map(x=>x.Name).Index(“MyIndex”);Map(x=>x.RunTimeInMinutes.Index(“MyIndex”);已证实的我编写了索引脚本,得到了:使用[NhibernateDB]GO/*******对象:索引[IX_MyTable_ColumnA_和_ColumnB]脚本日期:2012年1月16日17:26:57*****/在[dbo].[MyTable]([ColumnA]ASC,[ColumnB]ASC)上创建非聚集索引[IX_MyTable_ColumnA_和_ColumnB]这是正确的,很好,但是,有没有一种简单的方法使索引唯一?找到了吗?使用UniqueKey(“MyIndex”)而不是Idex(“MyIndex”)是否有可能通过XML映射为一列创建多个索引(例如,为a列和B列创建多列索引,为a列创建另一个索引)?
mapping.Map(x => x.Name).Index("MyIndex");
mapping.Map(x => x.RunTimeInMinutes).Index("MyIndex");