gpt4 book ai didi

c# - ASP.Net MVC & NHibernate Burrow & Fluent NHibernate

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:10 24 4
gpt4 key购买 nike

我的 ASP.Net MVC 应用程序出现以下运行时错误:

NHibernate.MappingException: No persister for: MyProject.Model.MyDomainObject

我在我的应用程序中引用 burrow 和 fluent 二进制文件,并在 Application_Start 上的 Global.asax 中重新配置 burrow,如下所示:

var bf = new BurrowFramework();
IFrameworkEnvironment fe = bf.BurrowEnvironment;
Configuration cfg = fe.GetNHConfig("PersistenceUnit1");
cfg.AddMappingsFromAssembly(Assembly.LoadFrom(Server.MapPath("~/bin/MyProject.Data.dll")));
fe.RebuildSessionFactories();

我这辈子都弄不明白。如果我用我的域对象设置一个流畅的 NHibernate AutoPersistenceModel,那么一切正常,它只是不适用于手动配置的流畅映射。

我的单图如下:

public class MyDomainObjectMap : ClassMap<MyDomainObject>
{
public MyDomainObjectMap()
{
WithTable("my_domain_object");
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Description);
}
}

非常感谢任何帮助,如果您需要更多详细信息,请告诉我。

谢谢

最佳答案

为了回答您的初始方法失败的原因,cfg.AddMappingsFromAssembly() 扫描目标程序集以查找程序集中内置的预配置嵌入式 XML 映射文件。由于您在运行时“流畅地”生成映射,因此这些 XML 文件不存在。

另一方面,以下内容反射(reflect)了程序集以查找您定义的“FluentMappings”(即派生自 ClassMap<> 的那些),动态生成映射,并将其注入(inject)到配置中。在调用 FluentMappings.AddFromAssembly()

之前,映射不存在
Fluently.Configure(cfg)
.Mappings(m => m.FluentMappings.AddFromAssembly(assembly))

关于c# - ASP.Net MVC & NHibernate Burrow & Fluent NHibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/969321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com