代码之家  ›  专栏  ›  技术社区  ›  Mark Rogers

fluent nhibernate:如何更改自动映射字符串集合的底层sql类型?

  •  0
  • Mark Rogers  · 技术社区  · 14 年前

    我有一节课:

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

    什么时候 IList<string> ChildPages '获取 自动映射 通过 流畅的NHibernate A' ChildPages '联接表是用 nvarchar(255) 集合中每个字符串的备份字段。

    但问题是我希望sql backing字段是' text ,这样我就可以有这个实体的冗长条目。

    做这个改变最简单的方法是什么?

    如何更改自动映射基元集合的基础类型?

    另外,对于额外的点,您将如何使用约定或映射重写来完成此操作?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community T.Woody    7 年前

    可以设置重写约定,以便字符串使用 text 而不是 nvarchar2 (255) ,如解决方案所示 on this other thread 是的。如果您只希望特定属性有这样的行为,那么在fluent配置中这样的操作将起作用:

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