Suponiendo que realmente desee NTEXT
. Si quieres nvarchar(max)
o varchar(max)
ver https://stackoverflow.com/a/25729568/37055
Decora tu modelo de dominio con System.ComponentModel.DataAnnotations.StringLengthAttribute
como
[StringLengthAttribute(8001)]
public string Markdown { get;set; }
o
[StringLength(Int32.MaxValue)]
public string Markdown { get;set; }
utilizando cualquier longitud superior a 8000 exceda la longitud máxima del servidor Sql varchar
/nvarchar
column tipos.
Use un proveedor de dialectos personalizado que comprenda la declaración 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;
}
}
utilizar el proveedor cuando se construye la fábrica de la base de datos
var dbFactory = new OrmLiteConnectionFactory(conStr, NTextSqlProvider.Instance);
C# 's cadena de tipo de datos está muy bien para ntext. Puede contener caracteres Unicode y puede contener una cadena de longitud arbitraria. – Andomar
No utilice 'text',' ntext' o 'image' para un nuevo desarrollo; estos tipos de datos están [en desuso] (http://msdn.microsoft.com/en-us/library/ms187993.aspx). Utilice, respectivamente, 'varchar (MAX)', 'nvarchar (MAX)', y 'varbinary (MAX)'. Deberá consultar su documentación ORM para saber cómo usar esos tipos. –
Apoyo el comentario de @JonSeigel. Y puedes dar la longitud de la cuerda usando atributos en Ormlite. – kunjee