si Supponendo davvero vuole NTEXT
. Se si desidera nvarchar(max)
o varchar(max)
vedere https://stackoverflow.com/a/25729568/37055
decorare il vostro modello di dominio con System.ComponentModel.DataAnnotations.StringLengthAttribute
come
[StringLengthAttribute(8001)]
public string Markdown { get;set; }
o
[StringLength(Int32.MaxValue)]
public string Markdown { get;set; }
utilizzando qualsiasi lunghezza superiore a 8000 di superare la lunghezza massima di Sql Server varchar
/nvarchar
colonna tipi.
Utilizzare un provider di chiamate personalizzate che comprende la dichiarazione 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;
}
}
utilizzare il provider quando si costruisce la fabbrica di database
var dbFactory = new OrmLiteConnectionFactory(conStr, NTextSqlProvider.Instance);
fonte
2014-09-08 17:19:21
C# 's stringa tipo di dati è bene per ntext. Può contenere caratteri unicode e può contenere una stringa di lunghezza arbitraria. – Andomar
Non utilizzare 'text',' ntext' o 'image' per il nuovo sviluppo - questi tipi di dati sono [deprecati] (http://msdn.microsoft.com/en-us/library/ms187993.aspx). Usa, rispettivamente, 'varchar (MAX)', 'nvarchar (MAX)' e 'varbinary (MAX)'. Avrai bisogno di consultare la tua documentazione ORM su come usare questi tipi. –
Sostengo il commento di @JonSeigel. E puoi dare una lunghezza di stringa usando gli attributi in Ormlite. – kunjee