让我们首先解决这个问题:我知道SessionFactory是不可变的 - 我正在尝试在运行时更改配置并重新生成ISessionFactory。
具体来说,我有一个Customer映射,它会在运行时将一些字段添加到其动态组件节点。我想做这样的事情
var newSessionFactory = previousConfiguration
.RemoveClassMapping(typeof(Customer))
.AddXmlString(newMappingForCustomer)
.BuildSessionFactory();
但是,我没有看到任何明显的方法来删除映射,我还能做些什么来重新生成整个配置吗?
答案 0 :(得分:1)
这是不可能的。您必须重新生成Configuration
。
我最初的建议是为您的模型选择不同的策略。
但是,如果您决定使用此:-),您可以:
Configuration
(不包括Customer
)MemoryStream
Customer
映射SessionFactory
Customer
Configuration
Customer
映射并创建最终的SessionFactory