MappingException:在具有流畅映射的 N 层应用程序中没有持久性

Posted

技术标签:

【中文标题】MappingException:在具有流畅映射的 N 层应用程序中没有持久性【英文标题】:MappingException: No persister for in N-tier application with fluent mapping 【发布时间】:2018-07-13 00:24:57 【问题描述】:

我有以下项目的结构:

我的模型在 NHibernateTesteWeb.Domain.Entity 我的地图在 NHibernateTesteWeb.Data.Map

这是我的公司课程:

namespace NHibernateTesteWeb.Domain.Entity

    public class Company
    
        public virtual Guid Id  get; set; 
        public virtual string Name  get; set; 
    

这里是公司的地图类:

namespace NHibernateTesteWeb.Data.Map

    public class CompanyMap : ClassMap<Company>
    
        public CompanyMap()
        
            Table("Company");
            Id(c => c.Id).GeneratedBy.Native();
            Map(c => c.Name);
        
    

在 NHibernateHelper 类中:

...  

static NHibernateHelper()
            
    _sessionFactory = Fluently.Configure()
        .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2012.ConnectionString(c=>c.Server(@"(localdb)\Projects")
        .Database("StockAnalyser")
        .TrustedConnection()))                
        .Mappings(c => c.FluentMappings.AddFromAssemblyOf<Company>())
        .Mappings(c => c.FluentMappings.AddFromAssemblyOf<BDICode>()).BuildSessionFactory();
 

当我运行解决方案时,它会引发以下异常:

没有持久性:NHibernateTesteWeb.Domain.Entity.Company说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

我在使用 xml 映射时遇到了同样的错误。然后我更改为 Fluent 映射。但是错误没有解决。

我在 github 上托管了我的项目,以便您轻松帮助我: https://github.com/samsg/NHibernateSample

非常感谢您的有用帮助。

【问题讨论】:

【参考方案1】:

我想知道这是否是因为您已将调用链接到Mappings()。你可以试试:

static NHibernateHelper()
            
    _sessionFactory = 
        Fluently.Configure()
        // ...
            .Mappings(
                c => 
                    c.FluentMappings
                        .AddFromAssemblyOf<Company>()
                        .AddFromAssemblyOf<BDICode>())
            .BuildSessionFactory();

来自:https://***.com/a/6062220/1162077

【讨论】:

我尝试了您的解决方案。不幸的是,它没有用。其他提示?谢谢。

以上是关于MappingException:在具有流畅映射的 N 层应用程序中没有持久性的主要内容,如果未能解决你的问题,请参考以下文章

JPA javax.persistence.PersistenceException:org.hibernate.MappingException:没有 JDBC 类型的方言映射:-101

org.hibernate.MappingException:关联引用未映射的类:empresa.Empleados

Jpa Join 查询与来自两个表的数据,org.hibernate.MappingException:没有 JDBC 类型的方言映射:2002

org.hibernate.MappingException:找不到具有逻辑名称的列

具有自然键的流畅 NHibernate 引用实体

Doctrine异常 - [Doctrine ORM Mapping MappingException]