Sql server nHibernate和SQLServer:我可以从映射中声明索引,还是必须单独创建它们

Sql server nHibernate和SQLServer:我可以从映射中声明索引,还是必须单独创建它们,sql-server,nhibernate,Sql Server,Nhibernate,我有一个简单的映射文件: <class name="Comment"> <id name="ID" generator="increment" /> <property name="KnowledgeID" /> </class> 其中“KnowledgeID”是另一个表的外键。出于性能原因,我希望对其进行索引。 我知道我可以在SQL Server Management Studio中创建索引,并通过其名称链接它: <pro

我有一个简单的映射文件:

<class name="Comment">
  <id name="ID" generator="increment" />
  <property name="KnowledgeID" />
</class>

其中“KnowledgeID”是另一个表的外键。出于性能原因,我希望对其进行索引。 我知道我可以在SQL Server Management Studio中创建索引,并通过其名称链接它:

  <property name="KnowledgeID" index="IX_KnowledgeComment_ID" />

但是我想知道通过nHibernate配置是否可以达到同样的目标


那么,在为nHibernate生成的表定义索引时,什么是好的标准实践呢?

是的,您可以使用nHibernate创建索引或唯一约束。下面是使用代码映射的唯一约束的一些语法

public AgencyMap()
{
    Property(x => x.Name, m => 
    { 
        m.UniqueKey("UC_AgencyName");
        m.Index("IX_AgencyName");
        m.NotNullable(true); 
    });
    Property(x => x.ORI);
下面是一个使用多列索引的示例链接


这只能通过流畅的语法来实现,还是有一种方法可以通过XML映射来实现?是的。