2013-12-13 165 views
1

這裏是我滴表流利地圖功能NHibernate映射與外鍵關係

this.Table("Drops"); 
this.LazyLoad(); 
this.Id(x => x.Guid).GeneratedBy.Guid().Column("Guid"); 
this.References(x => x.User).column("UserGuid"); 
this.Map(x => x.FromLocation).Column("FromLocation").Not.Nullable().Length(50); 
this.Map(x => x.ToLocation).Column("ToLocation").Not.Nullable().Length(50); 
this.Map(x => x.Time).Column("Time").Not.Nullable(); 

這裏是我的用戶表

this.Table("Users"); 
this.LazyLoad(); 
this.Id(x => x.Guid).GeneratedBy.Guid(); 
this.Map(x => x.SessionId).Unique().Column("SessionId"); 
this.Map(x => x.UserName).Unique().Column("UserName"); 
this.Map(x => x.Password).Column("Password"); 
this.Map(x => x.NickName).Column("NickName"); 
this.Map(x => x.FirstName).Column("FirstName"); 
this.Map(x => x.LastName).Column("LastName"); 
this.Map(x => x.Gender).Column("Gender"); 

所以,滴包含的用戶表,

當我添加drop table,它會被正確添加。

我需要的是,我需要使用用戶SessionId獲取放置對象的列表。

我使用下面的代碼來獲得液滴收集,

session.QueryOver<Drop>().Where(d => d.UserGuid != user.Guid).List(); 

,但我得到以下錯誤,

無法解析屬性:UserGuid的: ******* **。**********。BusinessObjects.Drop

我檢查刪除表,UserGuid列被添加

enter image description here

如何獲得下拉列表或最新的問題呢?

感謝,

回答

1

它不應該是:

session.QueryOver<Drop>().Where(d => d.User.SessionId != user.SessionId).List(); 

,如果你是用戶會話ID查找(或者你的情況不包括它們)。

編輯

對不起,我有這麼掛了,我錯過了,你需要定義一個別名,用戶對象的事實的初始點。嘗試:

User alias = null; 
session.QueryOver<Drop>().JoinAlias(d=>d.User,()=>alias).Where(d => alias.SessionId != user.SessionId).List(); 
+0

我的時候我用這「無法解析屬性:的User.SessionId:DeposeMoi.DataAccess.BusinessObjects.Drop」這個異常 –

+0

好,但讓計數爲0 ... –

+0

JTMon:我需要使用用戶會話獲取滴集合,並檢查我的映射是否正確,謝謝。 –