使用Fluent NHibernate覆盖属性映射

时间:2012-08-21 11:02:37

标签: nhibernate fluent-nhibernate sql-server-ce-4

我有一个Fluent NHibernate Mapping,它映射一个类的属性以使用NHibernate XDocType

  Map(x => x.Content)
            .Not.Nullable()
            .CustomType(typeof (XDocType));

我正在使用它,因为Sql 2008 db中的表列是XML类型。

目前我正在尝试使用不支持XML列类型的Sql CE编写一些单元/集成测试。

当我启动Session Factory时,有一种简单的方法是说我想覆盖Content列映射以使用支持的类型。

我目前如何启动会话工厂的一个例子是

var sessionFactory = Fluently.Configure()                                 
                                .Database(MsSqlCeConfiguration.Standard.ShowSql().ConnectionString(connectionString))
                                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<MyAssembly>())
                                .ExposeConfiguration((c) =>
                                                         {
                                                             sessionConfig = c;
                                                             new SchemaExport(c).Create(false, true);
                                                         })                                    
                                .BuildSessionFactory();

感谢。

1 个答案:

答案 0 :(得分:2)

您应该扩展MsSqlCeDialectMsSqlCe40Dialect并添加:

RegisterColumnType(DbType.Xml, "NTEXT");

这将为NTEXT / XDocType属性使用XmlDocType SQL类型。

相关问题