【问题标题】:Fluent NHibernate: How do you change the underlying sql type for an automapped collection of strings?Fluent NHibernate:如何更改自动映射字符串集合的底层 sql 类型?
【发布时间】:2023-04-10 09:20:01
【问题描述】:

我有一堂课:

public class ParentClass
{
     //other stuff
     IList<string> ChildPages
}

当 'IList&lt;string&gt; ChildPages' 被 Fluent NHibernate 自动映射 时,会创建一个 'ChildPages' 连接表,其中每个字符串都有一个 nvarchar(255) 支持字段收藏。

但问题是我希望 sql 支持字段为“text”,这样我就可以为该实体输入冗长的条目。

进行此更改的最简单方法是什么?

如何更改自动映射的原始集合的底层类型?

另外,对于额外的点,您将如何使用约定或映射覆盖来做到这一点?

谢谢!

【问题讨论】:

    标签: nhibernate sql-server-2008 fluent automapping backing-field


    【解决方案1】:

    您可以设置覆盖约定,以便字符串使用text 而不是nvarchar2 (255),如解决方案on this other thread 中所示。如果您只希望特定属性的这种行为,那么在您的流利配置中这样的事情会起作用:

    AutoMap
        .AssemblyOf<ParentClass>()
        .Override<ChildPage>(map =>
            {
                mapping.Map(x => x.Page).CustomType("StringClob").CustomSqlType("text");
            });
    

    【讨论】:

    • 感谢您的回复,但我认为这不会起作用,因为 'ChildPages' 是属性名称而不是类型。
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2015-05-23
    相关资源
    最近更新 更多