ntext in ServiceStack.Ormlite

8

Wie kann ich den nText-Datentyp zuerst im ServiceStack.Ormlite-Code haben?

%Vor%

Wenn ich den String-Datentyp verwende, erzeugt ormlite nVarchar (8000) in der Datenbank

Ich brauche mehr als 8000 Zeichen für Daten

    
mehrdad 01.07.2012, 11:52
quelle

2 Antworten

4

Sie müssen den Typ Body in byte[] von string für ServiceStack.OrmLite konvertieren, um den Spaltentyp varchar(max) zu verwenden. Etwas wie das Folgende:

%Vor%

Der Grund hierfür liegt im ServiceStack.Ormlite-Code.

In der Datei ServiceStack.Ormlite / OrmliteDialectProviderBase.cs , unter der Methode InitColumnTypeMap() ist:

%Vor%

In der Datei ServiceStack.OrmLite.SqlServer / SqlServerOrmLiteDialectProvider.cs , unter der Methode SqlServerOrmLiteDialectProvider() ist:

%Vor%

Aus diesem Code können Sie sehen, dass eine interne Zuordnung vom C # -Typ zum internen ServiceStack.Ormlite-Typ stattfindet und dann zum SqlServer-Typ zurückkehrt.

Diese Frage erläutert, wie Sie zwischen Zeichenfolgen und Bytearrays konvertieren können. Wie erhalte ich eine konsistente Bytedarstellung von Zeichenfolgen in C #? ohne manuell eine Codierung anzugeben? .

    
Ryan Gates 11.06.2013, 18:51
quelle
2

Angenommen Sie wirklich möchten NTEXT . Wenn Sie nvarchar(max) oder varchar(max) möchten, sehen Sie Ссылка

Gestalten Sie Ihr Domänenmodell mit System.ComponentModel.DataAnnotations.StringLengthAttribute

wie

%Vor%

oder

%Vor%

Verwenden Sie eine beliebige Länge größer als 8000, um die maximale Länge von Sql Server varchar / nvarchar Spaltentypen zu überschreiten.

Verwenden Sie einen benutzerdefinierten Dialektanbieter, der die NTEXT -Deklaration versteht.

%Vor%

Verwenden Sie den Anbieter, wenn Sie die Datenbankfactory erstellen

%Vor%     
Chris Marisic 08.09.2014 17:19
quelle