我有一个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();
感谢。
答案 0 :(得分:2)
您应该扩展MsSqlCeDialect
或MsSqlCe40Dialect
并添加:
RegisterColumnType(DbType.Xml, "NTEXT");
这将为NTEXT
/ XDocType
属性使用XmlDocType
SQL类型。