如何使用NHibernate 3.2代码映射在多个字段上创建索引?

如何使用NHibernate 3.2代码映射在多个字段上创建索引?,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,在NHibernate 3.2“按代码映射”中,可以对给定字段进行索引,如下所示: mapper.Class<Customer>(map => { map.Property(x => x.Address, m => m.Index("AddressIndex")); }); mapper.Class(map=> { 属性(x=>x.Address,m=>m.Index(“AddressIndex”); }); 我想创建一个包含以下字段的索引: 地址 名

在NHibernate 3.2“按代码映射”中,可以对给定字段进行索引,如下所示:

mapper.Class<Customer>(map =>
{
    map.Property(x => x.Address, m => m.Index("AddressIndex"));
});
mapper.Class(map=>
{
属性(x=>x.Address,m=>m.Index(“AddressIndex”);
});
我想创建一个包含以下字段的索引:

  • 地址
  • 名字
  • 姓氏
我在“map”对象上看不到索引方法,也没有在属性特定的索引方法上看到允许您指定其他列的重载。我怎样才能做到这一点

编辑时,我发现如果我执行以下操作:

mapper.Class<Customer>(map =>
{
    map.Property(x => x.Address, m => m.Index("AddressIndex"));
    map.Property(x => x.FirstName, m => m.Index("AddressIndex"));
    map.Property(x => x.LastName, m => m.Index("AddressIndex"));
});
mapper.Class(map=>
{
属性(x=>x.Address,m=>m.Index(“AddressIndex”);
属性(x=>x.FirstName,m=>m.Index(“AddressIndex”);
属性(x=>x.LastName,m=>m.Index(“AddressIndex”);
});

将创建一个涵盖所有3列的索引,但不是按照我指定的顺序。有没有办法指定索引中的列顺序?

如果顺序很重要,那么一个选项是在生成架构后创建并执行脚本


我记得读过这篇文章,似乎秩序可能或可能重要

秩序重要吗?我总是相信顺序并不重要,因为它们不是关键列,存储在索引的叶页中。顺序绝对重要。通过将最具选择性的列放在第一位(SQL仅对索引中的第一列生成统计信息),SQL Server能够预先过滤掉最垃圾的内容。我不知道这是否适用于其他DB平台。顺便说一句,我还没有弄明白这一点。然后在生成模式后,您需要执行脚本。