2

我使用自動屬性與私人集,fluentNhibernate拋出一個錯誤,我...FluentNhibernate +私定

FluentNHibernate.Cfg.FluentConfigurationException:創建一個會話使用了無效的或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。 *數據庫未通過數據庫方法配置。

這是我的課:

public class MyClass 
{ 
    public virtual int Id { get; set; } 
    public virtual string PropOne { get; private set; } 
} 

這是我的地圖:

public class MyClassMap : ClassMap<MyClass> 
{ 
    public MyClassMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.PropOne); 
    } 
} 

如果我改變我的propertie到:

public virtual string PropOne { get; protected set; }, 

的FN正常工作。

但我讀了這個主題:https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping「訪問策略」,我一直在做這個話題。我錯在哪裏?

我放在GitHub上的例子:https://github.com/wbaldanw/NhAccessStrategies

下面,BuildSession

Configuration = new Configuration().Configure(); 
     var fluentConfiguration = Fluently.Configure(Configuration) 
      .Mappings(x => x.FluentMappings.AddFromAssemblyOf<MyClassMap>()); 
     try 
     { 
      NHSession = fluentConfiguration.BuildSessionFactory(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.ToString()); 
     } 

回答

0

我把FluentNhibernate項目的問題,正確的是使用私有組與領域。如果使用autoproperties權限是使用非私有setter。

這項工作很好:

private string name; 

public string Name 
{ 
    get { return name; } 
} 
0

的代碼,這可能是在FluentNH拋出誤導性異常的錯誤,但這個例外是不相關的映射本身,而不是構建SessionFactory。 我們展示的代碼請確保您設置數據庫驅動程序&它的配置通過.Database(..)呼叫

+0

嗨@migajek,我在這裏舉了一個例子:github.com/wbaldanw/NhAccessStrategies –

0

根據這一question and answer似乎在NHibernate的這個訪問策略不再支持爲v 3.3。你鏈接的文檔也讓我誤入歧途。他們應該更新,以注意NHibernate 3.2之後不支持這種情況。