.NET MVC: Wie definiert man Ntext-Feld in Code-First für SQL CE?

7

Ich habe das folgende Modell:

%Vor%

Ich habe das Feld BlogContent manuell auf ntext type (16 Bytes) in der SQL CE4 -Datenbank gesetzt.

Jedes Mal, wenn ich versuche, mehr als 4000 Zeichen einzugeben, wird jedoch folgender Fehler ausgegeben:

  

Die Validierung ist für einen oder mehrere fehlgeschlagen   Entitäten. Siehe 'EntityValidationErrors'   Eigenschaft für weitere Details

Ich habe versucht, die Annotation für [Column(TypeName="ntext")] zu setzen, aber das macht keinen Unterschied. Wenn ich die EntityValidationErrors -Auflistung durchschlinge, wird das Problem von BlogContent verursacht und der Fehler sagt:

  

String darf nicht länger als 4000 Zeichen sein

Wie kann ich mein Modell so definieren, dass es ein ntext -Feld für BlogContent hat?

Es scheint, dass alle Datenannotationen ignoriert werden. Es wird vorausgesetzt, dass ein String ohne MaxLength standardmäßig auf 4000 Zeichen begrenzt ist.

    
Nestor 16.06.2011, 07:59
quelle

1 Antwort

21

Ich habe es gelöst, Sie müssen verwenden:

%Vor%

Siehe Details hier: Ссылка

  

Um eine Spalte ntext in der Datenbank zu erstellen und die Modellüberprüfung zuzulassen   um zu wissen, dass die Stringlänge mehr als 4.000 Zeichen betragen kann   muss diese zwei Elemente verwenden:

     

[Column(TypeName="ntext")] : Dadurch wird Code-First angewiesen, ein   ntext Feld in der Datenbank.

     

[MaxLength] : Durch Verwendung des Standardwerts   Konstruktor, es dauert die maximale Länge des Datenbankfeldes,   anstatt die maximale Länge für eine Zeichenfolge zu erraten, die 4.000 ist. Wenn das ist   fehlt oder Sie legen explizit die maximale Länge fest, z. B. [MaxLength(8000)] , Modellvalidierung   Raise Fehler mit der Aussage "String maximale Länge ist 4.000 Zeichen".

    
Nestor 18.06.2011, 04:17
quelle

Tags und Links