2012-11-05 46 views
1

我有一個模型庫,我想使用FluentNhibernate自動構建NHibernate映射。 有一個我想添加到這個模型的約定,那就是每個表名以's'結尾。 因此,這裏是我做的:FluentNHibernate AutoMapping:ClassConvention不起作用

new AutoPersistenceModel() 
      .AddEntityAssembly(typeof(User).Assembly) 
      .Conventions.Add(typeof(ClassConvention)) 
      .WriteMappingsTo(@"E:\Temp\"); 

這裏的ClassConvention的代碼:

private class ClassConvention:IClassConvention 
    { 
     public void Apply(IClassInstance instance) 
     { 
      instance.Table(instance.EntityType.Name+"s"); 
     } 
    } 

,但它根本就不work.No表屬性添加到類標籤,當我運行這段代碼。 請幫我理解我的代碼有什麼問題?

更新:

我已經調試我的代碼,我相信這條線:

instance.Table(instance.EntityType.Name+"s"); 

被調用。

+0

您使用哪個版本的流利NHibernate? – Firo

+0

NHibernate 3.3.0.4 – Beatles1692

回答

0

您定義類的約定應該是公開的而不是私人的

+0

對:)但這是一個錯字。 – Beatles1692