Предполагая, что вы действительно хотят NTEXT
. Если вы хотите nvarchar(max)
или varchar(max)
см https://stackoverflow.com/a/25729568/37055
Украсьте модель предметной области с System.ComponentModel.DataAnnotations.StringLengthAttribute
, такие как
[StringLengthAttribute(8001)]
public string Markdown { get;set; }
или
[StringLength(Int32.MaxValue)]
public string Markdown { get;set; }
используя любую длину, превышающую 8000 превышать максимальную длину сервера Sql varchar
/nvarchar
column типы.
Использование специального поставщика диалектов понимает декларацию NTEXT
.
public class NTextSqlProvider : SqlServerOrmLiteDialectProvider
{
public new static readonly NTextSqlProvider Instance = new NTextSqlProvider();
public override string GetColumnDefinition(string fieldName, Type fieldType,
bool isPrimaryKey, bool autoIncrement, bool isNullable,
int? fieldLength, int? scale, string defaultValue)
{
var fieldDefinition = base.GetColumnDefinition(fieldName, fieldType,
isPrimaryKey, autoIncrement, isNullable,
fieldLength, scale, defaultValue);
if (fieldType == typeof (string) && fieldLength > 8000)
{
var orig = string.Format(StringLengthColumnDefinitionFormat, fieldLength);
fieldDefinition = fieldDefinition.Replace(orig, "NTEXT");
}
return fieldDefinition;
}
}
Используйте поставщик, когда вы создаете базу данных завода
var dbFactory = new OrmLiteConnectionFactory(conStr, NTextSqlProvider.Instance);
C# 's строка типа данных отлично подходит для NTEXT. Он может содержать символы Unicode и может содержать произвольную длину. – Andomar
Не используйте 'text',' ntext' или 'image' для новой разработки - эти типы данных [устарели] (http://msdn.microsoft.com/en-us/library/ms187993.aspx). Используйте, соответственно, 'varchar (MAX)', 'nvarchar (MAX)' и 'varbinary (MAX)'. Вам нужно проконсультироваться с вашей документацией ORM о том, как использовать эти типы. –
Я поддерживаю комментарий @JonSeigel. И вы можете указать длину строки, используя атрибуты в Ormlite. – kunjee