首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fluent NHibernate和ASP.Net MVC & NHibernate NHibernate

Fluent NHibernate和ASP.Net MVC & NHibernate NHibernate
EN

Stack Overflow用户
提问于 2009-06-09 10:44:46
回答 2查看 3.1K关注 0票数 1

我在我的ASP.Net MVC应用程序中得到了以下运行时错误:

代码语言:javascript
复制
NHibernate.MappingException: No persister for: MyProject.Model.MyDomainObject

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

代码语言:javascript
复制
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,那么一切都会正常工作,只是对于手动配置的流畅地图是行不通的。

我所拥有的单一地图如下:

代码语言:javascript
复制
public class MyDomainObjectMap : ClassMap<MyDomainObject>
{
    public MyDomainObjectMap()
    {
        WithTable("my_domain_object");
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Description);
    }
}

任何帮助将非常感谢,请让我知道,如果你需要更多的细节。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2009-06-13 23:38:23

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

另一方面,下面的代码在程序集上进行反映,以找到您定义的“FluentMappings”(即从ClassMap<>派生的那些),动态生成映射,并将其注入到配置中。在调用FluentMappings.AddFromAssembly()之前,映射不存在

代码语言:javascript
复制
Fluently.Configure(cfg)
    .Mappings(m => m.FluentMappings.AddFromAssembly(assembly))
票数 4
EN

Stack Overflow用户

发布于 2009-06-13 23:13:11

好的,通过执行以下操作,我已经让它工作了:

代码语言:javascript
复制
var bf = new BurrowFramework();
IFrameworkEnvironment fe = bf.BurrowEnvironment;
Assembly assembly = Assembly.LoadFrom(Server.MapPath("~/bin/MyProject.Data.dll"));
Configuration cfg = fe.GetNHConfig("PersistenceUnit1");

Fluently.Configure(cfg)
    .Mappings(m => m.FluentMappings.AddFromAssembly(assembly))
    .BuildConfiguration();

fe.RebuildSessionFactories();

有人知道为什么我之前的方法不起作用吗?

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/969321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档