2010-01-06 28 views
1

我试图利用FluentNHibernate与自动映射,但我收到以下错误在Fluent Nhibernate中使用AutoMap的实体没有持续者?

No persister for: nHibernateSpike.Entities.Route 
    NHibernate.MappingException: No persister for: nHibernateSpike.Entities.Route 

下面是相关的东西;

 var model = AutoMap.AssemblyOf<Route>(). 
      Where(t => t.Namespace == "nHibernateSpike.Entities"); 

     model.WriteMappingsTo(@"c:\hbm"); 

     var db = MsSqlConfiguration.MsSql2008 
      .ConnectionString(c => c 
      .Server("localhost") 
      .Database("PTSIntegrationDB") 
      .TrustedConnection() 
      ) 
      .ShowSql(); 

     var sessionFactory = Fluently.Configure() 
      .Database(db) 
      //.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Route>()) 
      .Mappings(m => m.AutoMappings.Add(model)) 
      .BuildSessionFactory(); 

     return sessionFactory; 

实体

 namespace nHibernateSpike.Entities 
     { 
      public class Route 
      { 
       public virtual int Id { get; private set; } 
       public virtual string Number { get; set; } 
       public virtual string ConfirmationCategory { get; set; } 

       public Route() { } 

      } 
     } 

我拉我的头发。使用以下ClassMap工作;

 public class RouteMap: ClassMap<Route> 
     { 
      public RouteMap() 
      { 
       Table("Route"); 
       Id(c => c.Id); 
       Map(c => c.Number); 
       Map(c => c.ConfirmationCategory); 
      } 

     } 

我有机会使用AutoMap来驱动该项目的数据库,并且我想使用它 - 任何线索?

+0

does model.WriteMappingsTo(@“c:\ hbm”);写出正确的映射? – mxmissile 2010-01-06 22:25:17

+0

不,我认为automapper未能找到类型,因此没有输出。似乎这是WriteMappingsTo的当前错误。 – 2010-01-07 08:45:00

回答

1

我似乎记得有一个突出的错误,其中调用WriteMappingsTo可以防止您的映射传递给NHibernate,尝试删除该调用并查看会发生什么。

+0

Bingo :)非常感谢 - http://code.google.com/p/fluent-nhibernate/issues/detail?id=325 – 2010-01-07 08:43:42

相关问题