2012-07-17 45 views
1

我有一個這樣的查詢:如何在hibernate中獲取查詢表的值?

var query = scope.Session.QueryOver<Task>().Where(s => s.Code == code && s.Flag == flag && s.Antry != null); 

我有一個第二查詢:

var personQuery = scope.Session.QueryOver<Person>(); 

查詢具有字段id,其對應於在personQuery的ID。

我想要的是讓personQuery只包含查詢中存在的id。到目前爲止,我一直在做這樣的:

int[] arr = query.Where(i=> i.Id!=null).List<int>().ToArray(); 
entryQuery.Where(i => i.Id.IsIn(arr)); 

但是,我認爲這將失敗,因爲我知道:

query.Where(i=> i.Id!=null).List<int>().ToArray();

不會返回一個整數數組,但查詢的對象。

那麼如何才能在查詢中獲得整數的ID?

回答

2

,僅保留整數的ID從查詢,你可以只用你感興趣的東西,如屬性中選擇一個匿名類型:

var integerids = scope.Session.QueryOver<Person>() 
    .Select(p => p.Id) 
    .List<int>(); 
+0

哈哈...對不起,你必須教,這是一個非常低調的問題...補充它...我總是忘記選擇和在哪裏的區別 – 2012-07-17 08:39:48