c# - 使用 Fluent NHibernate 映射大字符串

标签 c# .net nhibernate fluent-nhibernate nhibernate-mapping

我正在使用 Oracle 数据库,并且正在尝试映射此类:

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

有了这个映射类:

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

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

如何将它映射到可以包含非常大的字符串的类型(例如 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");
    }
}

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

关于c# - 使用 Fluent NHibernate 映射大字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3105391/

相关文章:

c# - System.ArgumentException : Incorrect number of parameters supplied for lambda declaration in System. Linq.Expressions 方法

NHibernate映射: UserTypes with many-to-one

c# - Fluent NHibernate AutoMapper 中的可访问性忽略属性映射

c# - Azure 服务总线权限是否传递到其子主题和队列

asp.net - 找不到与命令 dotnet-projectmodel-server 匹配的可执行文件

c# - Azure存储表查询: Building a Contains Filter

c# - 在 SplitContainer 上禁用焦点提示

nhibernate - nchar 尾随空格导致记录在 nHibernate 中显示为脏

c# - 为什么 C# 编译器会插入显式接口(interface)实现?

c# - 如何从 Visual Studio 2003 中的调试器检查 XML 流