2011-07-20 216 views
0

我有類filter.cs這個屬性:功能NHibernate映射

public virtual int Id { get; set; } 
    public virtual Attribute Attribute { get; set; } 
    public virtual Int16 Type { get; set; } 
    public virtual string FilterValue { get; set; } 
    public virtual ReportConfiguration ReportConfiguration { get; set; } 

屬性和ReportConfiguration是一個外鍵。

我提出這個映射:

 Id(a => a.Id).UnsavedValue(0).GeneratedBy.Identity(); 
     Map(a => a.Type); 
     Map(a => a.FilterValue); 
     References(x => x.ReportConfiguration).Column("IdReportConfiguration").Not.LazyLoad(); 
     References(x => x.Attribute).Column("IdAttribute").Not.LazyLoad(); 

此外,我具有例如與所述方法的存儲庫類:

public int Create(Filter F) 
    { 
     int FilterId = 0; 
     Transactional(session => 
     { 
      FilterId = (int)session.Save(F); 
     }); 
     return FilterId; 
    } 

而當我做的Create(Filter F)單元測試它產生一個異常:

沒有persister:.... Filter.cs

I認爲映射不正確。

有什麼想法?

感謝和問候。

回答

0

試一下:

Fluent Nhibernate No persister for:

從上面的帖子:

解決方案:因爲類是不公開的,會出現此錯誤。只需將 課程更改爲公開課程,這不會再發生。但是,如果您不想 想要暴露程序集外部的程序集,則仍然可以將構造函數標記爲 爲'internal'。

這是你的情況?


這是一個類似的問題:

Fluent Nhibernate No Persistor for Class Name

+0

完美的我做我的類public。 – Tarlak