Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mapping large string with Fluent NHibernate

I'm working with an Oracle DB, and I'm trying to map this class:

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

With this mapping class:

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

But the column type that it generates me is NVARCHAR(255), And the Book.Text Property has much more than 255 characters.

How can I map it to a type that can contain a very large string (for example CLOB)?

like image 496
leeran Avatar asked Jun 23 '10 20:06

leeran


1 Answers

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

or

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)
    }
}
like image 131
Tim Hoolihan Avatar answered Oct 01 '22 10:10

Tim Hoolihan