Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Nhibernate使用文本字段而不是nvarchar(255)生成表_Nhibernate_Nhibernate Mapping - Fatal编程技术网

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

如何使Nhibernate使用文本字段而不是nvarchar(255)生成表,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我试图让NHibernate生成我的schema/SQL 2008,使用下面的映射,它一直希望创建一个nvarchar(255)列而不是文本…有什么想法吗 <property name="AnnouncementText" column="AnnouncementText" type="StringClob"> <column name="AnnouncementText" sql-type="NTEXT"/> </property> 谢谢

我试图让NHibernate生成我的schema/SQL 2008,使用下面的映射,它一直希望创建一个nvarchar(255)列而不是文本…有什么想法吗

    <property name="AnnouncementText" column="AnnouncementText" type="StringClob">
  <column name="AnnouncementText" sql-type="NTEXT"/>
</property>


谢谢

我已经习惯了SQLServer2005及其使用的方言,但我想你也可以做类似的事情。由于nvarchar(n)允许n最多为4000,因此高于该值的值将使用nvarchar(max)

我假设您正在使用的SQL Server 2000在达到极限后也会执行类似的操作。如果我正确地阅读了NHibernate代码(NHibernate.dialogue.mssql2000dialogue..ctor()),那么一旦传递0xFA0=4000个字符,就会得到ntext

<property name="AnnouncementText" column="AnnouncementText" type="string" length="10000"/>

这一点帮助都没有,但我记得过去的美好时光;-)


问题是指定了两次列的名称…一次我将它和属性元素的长度取出来,它就工作得很好

 <property name="AnnouncementText" type="StringClob">
  <column name="AnnouncementText" sql-type="text"/>
</property>


<代码> > OOOPS忘了提到我正在使用SQL 2008但使用2005个方言,但我实际上是在尝试创建一个文本列,而不是NVARCHAR(MAX)。Btw,您应该考虑更改您的文本/ Ntext列没有VARCHAR(MAX)/NVARCHAR(MAX)。在2005年和2008年,由于前两个版本被弃用。哇,从发帖到在谷歌索引中插入43分钟…这是怎么发生的????去寻找更多的点击率,我自己的该死的问题回来了。所以一定和魔鬼有某种约定。。。我是说,谷歌;-)啊,来吧!我觉得很讽刺的是,你必须努力制作一个像NHibernate这样的神奇的自动工具,做一些如此简单的事情!这就是问题所在,谢谢,我一直在找一个像这样愚蠢的问题!
 <property name="AnnouncementText" type="StringClob">
  <column name="AnnouncementText" sql-type="text"/>
</property>