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

时间:2016-07-21 16:41:55

标签: sql-server nhibernate

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

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

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

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

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

那么,为nHibernate生成的表定义索引的标准做法是什么?

1 个答案:

答案 0 :(得分:1)

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

public AgencyMap()
{
    Property(x => x.Name, m => 
    { 
        m.UniqueKey("UC_AgencyName");
        m.Index("IX_AgencyName");
        m.NotNullable(true); 
    });
    Property(x => x.ORI);

这是指向使用多列索引的示例的链接

How do I create an index over multiple fields using NHibernate 3.2 mapping by code?