使用servicestack的ormlite并使用以下属性装饰属性,创建一个longtext类型的列,而不是文档中提到的o text:
但它变得很长:
我试着设置 StringLenghtAttribute
去做别的事, 65535
, 70000
, Int32.MaxValue
等等,但它要么把它解释成一个varchar,然后给我 Column length too big
或者 Row size too large
,或者说它变成了一个长话短说。
问题是:如何强制它变成“文本”(或mysql中的任何其他文本类型)?
我也许可以修改一下 MaxColumnDefinition
设置为 TEXT
但我想我永远也不会有长话短说了。
更新设置 MaxColumnDefinition
发短信什么都没变
我可以用一个属性来装饰类,以某种方式指定类型吗?或者这是不是太特定于sql版本了?
或者我应该推翻 GetColumnDefinition
实现我自己的逻辑。。。
1条答案
按热度按时间9udxz4iz1#
(请注意,此解决方案会产生其他问题,我将在单独的so帖子中询问)
经过进一步的研究,创建我自己的stringconverter就解决了这个问题,如下所示:
我还建议将默认stringlength设置为小于默认8000的值:
这样,默认
string
将varchar(255)
. 如果要将特定的字符串属性设置为其他属性,请根据MyStringConverter
: