2010-06-23 11 views
6

Ich arbeite mit einer Oracle-DB, und ich versuche, diese Klasse zu kartieren:Mapping große Zeichenfolge mit Fluent NHibernate

public class Book 
{ 
    public virtual int Id { get; private set; } 
    public virtual string Author { get; set; } 
    public virtual string Title { get; set; } 
    public virtual string Text { get; set; } 
} 

Mit dieser Mapping-Klasse:

public class BookMap : ClassMap<Book> 
{ 
    public BookMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Author); 
     Map(x => x.Title); 
     Map(x => x.Text); 
    } 
} 

Aber die Säule Geben Sie ein, dass es mich NVARCHAR (255) generiert, und die Book.Text-Eigenschaft hat viel mehr als 255 Zeichen.

Wie kann ich es einem Typ zuordnen, der eine sehr große Zeichenfolge enthalten kann (z. B. CLOB)?

+0

siehe http://stackoverflow.com/questions/2343105/override-for-fluent-nhibernate-for-long-text-strings-nvarcharmax-not-nvarchar –

Antwort

9
public class BookMap : ClassMap<Book> 
{ 
    public BookMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Author); 
     Map(x => x.Title); 
     Map(x => x.Text).CustomSqlType("CLOB"); 
    } 
} 

oder

public class BookMap : ClassMap<Book> 
{ 
    public BookMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Author); 
     Map(x => x.Title); 
     Map(x => x.Text).Length(500); // nvarchar(500) 
    } 
} 
+2

Do Du meinst 'CustomType (" StringClob ")'? –

+0

@ChrisS. StringClob ist für SQL Server, die Frage war über Oracle –

+0

StringClob funktioniert nicht auf SQL Server 2008. –

Verwandte Themen