如何使用NHibernate 3.2代码映射在多个字段上创建索引?
在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”); }); 我想创建一个包含以下字段的索引: 地址 名
mapper.Class<Customer>(map =>
{
map.Property(x => x.Address, m => m.Index("AddressIndex"));
});
mapper.Class(map=>
{
属性(x=>x.Address,m=>m.Index(“AddressIndex”);
});
我想创建一个包含以下字段的索引:
- 地址
- 名字
- 姓氏
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平台。顺便说一句,我还没有弄明白这一点。然后在生成模式后,您需要执行脚本。