我正在尝试让NHibernate生成我的架构/ SQL 2008,并且使用下面的映射它一直想要创建一个nvarchar(255)列而不是文本......任何想法?
<property name="AnnouncementText" column="AnnouncementText" type="StringClob">
<column name="AnnouncementText" sql-type="NTEXT"/>
</property>
谢谢!
答案 0 :(得分:8)
问题是指定列的名称两次...一旦我接受它,并且属性元素的长度完全正常工作
<property name="AnnouncementText" type="StringClob">
<column name="AnnouncementText" sql-type="text"/>
</property>
答案 1 :(得分:6)
我已经习惯了SQL Server 2005及其使用的方言,但我认为你可以做类似的事情。由于nvarchar(n)允许n最多为4000,因此高于此值的值将使用nvarchar(max)。
我推测一旦你达到极限,它听起来像你正在使用的SQL Server 2000会做类似的事情。如果我正确读取NHibernate代码(NHibernate.Dialect.MsSql2000Dialect..ctor()),一旦传递0xFA0 = 4000个字符,就会获得ntext。
<property name="AnnouncementText" column="AnnouncementText" type="string" length="10000"/>
答案 2 :(得分:-2)
这根本没有用,但我记得过去的美好时光; - )......
create table YourTable
(
...
AnnouncementText text null
...
)