2010-06-23 12 views
6

estoy trabajando con una base de datos Oracle, y yo estoy tratando de asignar esta clase:Mapeo gran cadena con Fluido 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; } 
} 

Con esta clase de mapeo:

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

Pero la columna escriba que me genera es NVARCHAR (255), y la propiedad Book.Text tiene mucho más de 255 caracteres.

¿Cómo puedo asignarlo a un tipo que puede contener una cadena muy grande (por ejemplo, CLOB)?

+0

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

Respuesta

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"); 
    } 
} 

o

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 quieres decir 'CustomType (" StringClob ")'? –

+0

@ChrisS. StringClob es para SQL Server, la pregunta era sobre Oracle –

+0

StringClob no funciona en SQL Server 2008. –

Cuestiones relacionadas