映射大型字符串功能NHibernate [英] Mapping large string with Fluent NHibernate

查看:195
本文介绍了映射大型字符串功能NHibernate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正与一个Oracle数据库,而我试图映射这个类:

 公共类图书
{
    公共虚拟INT标识{获取;私定; }
    公共虚拟字符串作者{获得;组; }
    公共虚拟字符串名称{获取;组; }
    公共虚拟字符串文本{获得;组; }
}
 

通过这种映射类:

 公共类BookMap:ClassMap<图书>
{
    公共BookMap()
    {
        ID(X => x.Id);
        地图(X => x.Author);
        地图(X => x.Title);
        地图(X => x.Text);
    }
}
 

但它生成我列类型为NVARCHAR(255),而 Book.Text 属性已远远超过255个字符。

我怎样才能将其映射到一个可以包含一个非常大的字符串(例如CLOB)类型?

解决方案

 公共类BookMap:ClassMap<图书>
{
    公共BookMap()
    {
        ID(X => x.Id);
        地图(X => x.Author);
        地图(X => x.Title);
        地图(X => x.Text).CustomSqlType(CLOB);
    }
}
 

 公共类BookMap:ClassMap<图书>
{
    公共BookMap()
    {
        ID(X => x.Id);
        地图(X => x.Author);
        地图(X => x.Title);
        地图(X => x.Text).Length(500); //为nvarchar(500)
    }
}
 

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)?

解决方案

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

这篇关于映射大型字符串功能NHibernate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆