如何使用文本字段而不是nvarchar(255)使Nhibernate生成表

Web*_*edi 5 nhibernate nhibernate-mapping

我正在尝试让NHibernate生成我的架构/ SQL 2008,并使用下面的映射它一直想要创建一个nvarchar(255)列而不是文本......任何想法?

    <property name="AnnouncementText" column="AnnouncementText" type="StringClob">
  <column name="AnnouncementText" sql-type="NTEXT"/>
</property>
Run Code Online (Sandbox Code Playgroud)

谢谢!

Web*_*edi 8

问题是指定列的名称两次...一旦我把它和属性元素的长度完美地工作

 <property name="AnnouncementText" type="StringClob">
  <column name="AnnouncementText" sql-type="text"/>
</property>
Run Code Online (Sandbox Code Playgroud)


sis*_*sve 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"/>
Run Code Online (Sandbox Code Playgroud)