2010-09-13 4 views
18

Mein DB-Schema hat eine Zeichenfolge als Varchar (max). Ich habe die andere questions bezüglich der Einstellung von Length auf mehr als 4000 oder 8000 gelesen, so dass es tatsächlich eine (n) varchar (max) im Mapping generiert, aber wenn ich Length (10000) in meiner Mapping-Klasse verwende, zeigt die hbm-Datei tatsächlich die Länge an = "10000" und wenn ich eine Entity mit mehr als 10000 Zeichen speichere, wird sie auf genau 10000 Zeichen gekürzt.So speichern Sie eine nicht abgeschnittene varchar (max) Zeichenfolge mit NHibernate und Fluent NHibernate

Ich möchte keine Kürzung.

(unter Verwendung von NH3-Alpha2 und FNH Stamm)

Antwort

21

Es scheint, dass dies ein altes Problem ist das jetzt baut in NHibernate 3.x Resurfacing; Sie können über die Problemumgehungen here lesen.

Hinweis: Ich habe den ursprünglichen Link aktualisiert, den ich gepostet habe, da er veraltet war.

+4

Aufruf CustomType ("StringClob") es tat. Danke. –

+0

Hat mir auch geholfen, danke –

+0

In einer HBM-Mapping-Datei, verwenden Sie einfach type = "StringClob" anstelle von type = "string" und Sie sind fertig. Dies funktioniert definitiv für NH 3.3, aber probiere es mit einer NH-Version> = 3.0. – Oliver

17

sollten Diese Zuordnung arbeiten:

<property name="TheProperty" type="StringClob"> 
    <column name="TheColumn" sql-type="nvarchar(max)" /> 
</property> 

für die fließend Äquivalent Schauen Sie einfach.

+2

glaubst du, dass dies in NHib 3 jemals richtig behandelt wird? Ein bisschen traurig, dass die sql-Server-spezifischen Details im Mapping wie folgt durchlecken ... – DanP

+0

@DanP können Sie ein Jira-Problem öffnen? –

+0

Ich glaube da ist schon eins: http://216.121.112.228/browse/NH-2302 Übrigens ... wärst du an einem gespendeten Domainnamen für die JIRA interessiert oder sowas? Eine IP-basierte URL zu haben erscheint ein wenig ... unbequem;) – DanP