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

MappingException: No persister for in N-tier application with fluent mapping

我有以下项目结构:

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

这是我的公司 class:

namespace NHibernateTesteWeb.Domain.Entity
{
    public class Company
    {
        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
    }
}

这里是公司的地图class:

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

在 NHibernateHelper 中 class:

...  

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.公司
问题描述:当前网络请求执行过程中出现未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

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

我在 github 托管了我的项目,因为您可以帮助我: https://github.com/samsg/NHibernateSample

非常感谢您提供的有用帮助。

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

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

本文来自: