作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我将SchemaExport与SQL Server 2005一起使用时,它会生成唯一的键名,例如:
UQ__员 worker 数__03317E3D
如何生成类似UQ__Employees__Name的名称?
即使在SQL Server中!
最佳答案
我认为有两种方法可以做您想做的事情。
第一个是在映射文件中指定名称。我知道它适用于外键,尽管我还没有尝试过使用唯一键。
<property name="KeyId" column="KeyId" type="Int" unique="true" unique-key="MyKeyName"/>
NHibernate.Cfg.INamingStrategy
的类并在配置nhibernate时添加该类来更改命名策略。
ISessionFactory sf = new Configuration()
.SetNamingStrategy(new YourNamingStrategy())
.Configure()
.SchemaExport(true, false);
ISessionFactory sf = new Configuration()
.SetNamingStrategy(ImprovedNamingStrategy.Instance)
.Configure()
.SchemaExport(true, false);
<property name=KeyID>
<column name="KeyId" unique-key="MyKeyName"/>
</property>
<database-object >
<create>
create table MyTable(
Id UNIQUEIDENTIFIER not null,
Name NVARCHAR(10) not null,
RowVersion INT not null,
primary key (Id)
)
ALTER TABLE dbo.MyTable ADD
CONSTRAINT IX_Table_1 UNIQUE NONCLUSTERED(Name)
WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
</create>
<drop></drop>
</database-object>
NHibernate.Mapping.IAuxiliaryDatabaseObject
的类,该类将创建DDL语句。
5.6. Auxiliary Database Objects
关于NHibernate SchemaExport : How to generate a meaningful unique key name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632386/
我是一名优秀的程序员,十分优秀!