NHibernate - 名称主键约束?

And*_*ndy 6 nhibernate constraints primary-key

我们开始在我的工作场所使用NHibernate,包括从映射生成模式.我们的DBA想要的一件事是主键和外键关系的一致名称.我已经能够设置FK约束名称,但查看<id>它的文档似乎没有办法命名主键约束.http://www.nhforge.org/doc/nh/en/index.html#mapping-declaration-id

我想我错过了一些东西,因为这似乎是一件非常基本的事情.

Sch*_*lls 6

我在生成架构后运行以下脚本来修复主键名称。替换$(targetDb)为您的数据库名称。

BEGIN TRANSACTION
DECLARE @Rename nvarchar(MAX)
DECLARE RenameCursor CURSOR FOR
    SELECT
            'EXEC sp_rename ''[' + c.CONSTRAINT_SCHEMA + '].[' + c.CONSTRAINT_NAME + ']'', ''PK_' + c.TABLE_NAME + ''', ''OBJECT'''
        FROM $(targetDb).INFORMATION_SCHEMA.TABLE_CONSTRAINTS c
        WHERE
            c.CONSTRAINT_TYPE = 'PRIMARY KEY'
            AND
            c.TABLE_NAME IS NOT NULL
        ORDER BY c.TABLE_NAME
OPEN RenameCursor
FETCH NEXT
    FROM RenameCursor
    INTO @Rename
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC sp_executesql @Rename
    FETCH NEXT
        FROM RenameCursor
        INTO @Rename
END
CLOSE RenameCursor
DEALLOCATE RenameCursor
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)


Jam*_*Ide 5

不幸的是,它不受支持.这是一个丑陋的解决方法.