आप यह मानते हुए वास्तव में चाहते NTEXT
। यदि आप चाहते हैं nvarchar(max)
या varchar(max)
देख https://stackoverflow.com/a/25729568/37055
[StringLengthAttribute(8001)]
public string Markdown { get;set; }
या
[StringLength(Int32.MaxValue)]
public string Markdown { get;set; }
System.ComponentModel.DataAnnotations.StringLengthAttribute
जैसे 8000 से अधिक किसी भी लम्बाई का उपयोग कर अधिकतम लंबाई को पार करने के लिए के साथ अपने डोमेन मॉडल डेकोरेट एसक्यूएल सर्वर varchar
/nvarchar
कॉलम प्रकार के।
कस्टम डायलेक्ट प्रदाता का उपयोग करें 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);
स्रोत
2014-09-08 17:19:21
सी # की स्ट्रिंग डेटाप्रकार ntext के लिए ठीक है का निर्माण प्रदाता का उपयोग करें। इसमें यूनिकोड वर्ण हो सकते हैं, और एक मनमाना लंबाई स्ट्रिंग पकड़ सकते हैं। – Andomar
नए विकास के लिए 'text',' ntext' या 'image' का उपयोग न करें - इन डेटा प्रकारों को [बहिष्कृत] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) हैं। क्रमशः, 'वर्कर (MAX) ',' nvarchar (MAX)', और 'varbinary (MAX) 'का उपयोग करें। उन प्रकारों का उपयोग करने के लिए आपको अपने ओआरएम दस्तावेज से परामर्श करने की आवश्यकता होगी। –
मैं @ जोन्स सिगेल की टिप्पणी का समर्थन करता हूं। और आप Ormlite में विशेषताओं का उपयोग कर स्ट्रिंग की लंबाई दे सकते हैं। – kunjee