使用NHibernate和SchemaExport创建非聚簇主键

时间:2010-08-11 10:56:11

标签: sql-server nhibernate sql-server-2008 schemaexport

我们通过ActiveRecord使用SchemaExport。默认情况下,它会生成如下表格:

create table List (
  Id      UNIQUEIDENTIFIER   not null,
  Name    NVARCHAR(255)   null,
  OwnerId UNIQUEIDENTIFIER   null,
    primary key ( Id ))

然后,SQL Server默认为主键添加聚簇索引。但我希望这是非聚集的。我想向OwnerId添加聚簇索引,因为这样会更有效。

现在,我可以运行一个脚本来创建一个非聚集索引。这将涉及删除原始主键约束并添加非群集约束。但是,SchemaExport已经帮助我创建了所有外键约束,这些约束阻止我删除主键。

所以我需要删除外键,这些外键有一个无用的名称,如FK4BAD9607D2BEDDB5,然后重新创建它们(我可以自动重新执行此操作吗?)。这有点令人头疼。

如果我能以某种方式进入并在主键生成它时将非聚集规范添加到那里,那将会容易得多。我可以覆盖导出工具的相关位来执行此操作吗?

由于

1 个答案:

答案 0 :(得分:1)

我相信您最好的选择是使用SchemaExport创建脚本,并手动修改它。

否则,您需要覆盖Dialect.GetAddPrimaryKeyConstraintString