2011-07-07 59 views
3

我得到異常「沒有persist:MVCTemplate.Common.Entities.User」。我谷歌這個問題,並應用我找到的所有解決方案。但對我來說都是無用的。 有誰知道我做錯了什麼?沒有persister for:流利的nHibernate例外

我的用戶類別代碼被

public class User 
{ 
    public virtual Guid UserID { get; private set; } 
    public virtual string UserName { get; set; } 
    public virtual string Password { get; set; } 
    public virtual string FullName { get; set; } 
    public virtual string Email { get; set; } 
    public virtual TimeSpan LastLogin { get; set; } 
    public virtual bool IsActive { get; set; } 
    public virtual DateTime CreationDate { get; set; } 
    public virtual IList<UserInRole> UserInRoles { get; set; } 
} 

用戶映射:

public class UserMap : ClassMap<User> 
{ 
    public UserMap() 
    { 
     Table("tblUsers"); 
     Id(user => user.UserID).GeneratedBy.GuidComb(); 
     Map(user => user.UserName).Not.Nullable(); 
     Map(user => user.Password).Not.Nullable(); 
     Map(user => user.FullName).Not.Nullable(); 
     Map(user => user.Email).Not.Nullable(); 
     Map(user => user.LastLogin).Not.Nullable(); 
     Map(user => user.IsActive).Nullable(); 
     Map(user => user.CreationDate).Not.Nullable(); 
     HasMany(user => user.UserInRoles); 
    } 
} 

FNH配置:

return Fluently.Configure() 
      .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008 
      .ConnectionString(c => c.FromConnectionStringWithKey("FNHConnection")) 
      ) 
      .Mappings(m => 
       m.FluentMappings.AddFromAssemblyOf<User>()) 
      .BuildSessionFactory(); 

感謝

+0

你寫過的映射「用戶」? – Phill

+0

你好我剛剛添加了問題 – Saad

+0

的映射代碼你如何將映射添加到NH配置?該程序集中的映射位於您嘗試運行它的應用程序的bin目錄中?有問題的例外是當會話沒有關於你想要保存的對象的信息時。 – Phill

回答

8

仔細檢查您的映射類是公共的。

檢查你有你的流利的配置是這樣的....

.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>()) 
+0

創建SessionFactory時使用了無效或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。應用ddFromAssemblyOf後獲得此例外 Saad

+0

所以這是一個進步。你糾正了布爾可空問題嗎? – UpTheCreek

+0

是的..但是GT新的異常「{」(XmlDocument)(3,6):XML驗證錯誤:名稱空間'urn:nhibernate-mapping-2.2'中的元素'composite-id'具有不完整的內容。預期的可能元素列表:'meta,key-property,key-many-to-one'在命名空間'urn:nhibernate-mapping-2.2'中。「}」 – Saad

相關問題