如何在不生成HBM XML文件的情况下创建动态NHibernate映射?
我正在使用NHibernate开发一个动态应用程序。我的目标是基于一些数据创建动态实体(类类型和映射xml文件)。例如,假设我想在运行时动态地创建一个如何在不生成HBM XML文件的情况下创建动态NHibernate映射?,nhibernate,dynamic,fluent-nhibernate,castle-activerecord,Nhibernate,Dynamic,Fluent Nhibernate,Castle Activerecord,我正在使用NHibernate开发一个动态应用程序。我的目标是基于一些数据创建动态实体(类类型和映射xml文件)。例如,假设我想在运行时动态地创建一个Person实体 我使用Reflection.Emit动态生成类类型。为了动态创建映射,我使用了。但不幸的是,此代码不起作用,因为映射没有类属性。我试图编写与castleactiverecord和Fluent NHibernate的代码相同的代码,但它们会生成HBM XML文件。因为我不想生成/创建映射文件,所以无法使用这些解决方案 有没有办法像A
Person
实体
我使用Reflection.Emit
动态生成类类型。为了动态创建映射,我使用了。但不幸的是,此代码不起作用,因为映射
没有类
属性。我试图编写与castleactiverecord
和Fluent NHibernate
的代码相同的代码,但它们会生成HBM XML文件。因为我不想生成/创建映射文件,所以无法使用这些解决方案
有没有办法像Ayende的解决方案那样,不被迫生成HBM XML映射文件,而只是在内存中动态地执行所有操作?NHibernate 3.2有一个层可以满足您的需要
我不确定动态类是否可以工作,但尝试一下也无妨。fluentnhibernate在内存中创建hbm只是为了将它们提供给nhibernate。fluentnhibernate具有良好的自动映射功能,具有成本可调约定,非常适合这种情况。同样在FNH 2.0中,他们正在努力跳过hbm以获得更好的性能,但通常情况下,您永远不会看到内存之外的映射 样本:
Assembly assembly = GetDynamicallyCreatedTypesAssembly();
ISessionFactory sf = Fluently.Configure()
.Database(...)
.Mappings(m => m.AutoMappings.Add(AutoMap.Assembly(assembly)))
.BuildSessionFactory();
我想知道FNH的输出是否会被正确读取。。。特别是关于程序集和类型名。非常感谢,这对我来说似乎非常有用。我有一个关于将类型传递给泛型的相关问题:。请你也看一下好吗?@afsharm:jonskeet's linked by Matthew in should do。