2010-07-15 44 views
0

快速背景 - 我有一個表單,它向用戶提供了一些可選的選項,並在我的服務上提供了一個搜索方法,它接受所有這些字段,在主IQueryable列表上附加必要的Where()條件。LINQ-to-NHibernate按合成字段篩選IQueryable - 「無法解析屬性」錯誤

其中一個過濾器是必須與IQueryable中三個不同字段的組合進行比較的字符串列表。這裏的投擲「無法解析財產」錯誤代碼:

var searchResults = _transactionHeaders.Retrieve(); 
if (subgroups.Any()) 
    searchResults = searchResults.Where(s => subgroups.Contains(s.CustomerType + s.RusNumber + s.GroupNumber)); 

return searchResults.ToList() 

我讀了幾個帖子暗示的別名需求並不直接映射NHibernate的映射任何屬性被創建。我不太確定這是我的問題的解決方案。

對此提出建議?謝謝你盡你所能的幫助。

+1

更新:我試圖改變我的查詢方法來建立動態查詢(http://ayende.com/Blog/archive/2009/05/19/nhibernate-queries-examples.aspx),但無法得到那個工作無論是。 希望一個計算出來的屬性能夠工作,我試着快速入門將這3個字段加在一起: 公共虛擬字符串SubgroupCode {{return CustomerType + RusNumber + GroupNumber; }}} 然後我改變where子句: 如果(subgroups.Any()) SearchResult所= searchResults.Where(S => subgroups.Contains(SubgroupCode)); 不幸的是,同樣的「無法解決財產」的錯誤。 – 2010-07-15 12:42:59

回答

0

Linq2Nhibernate無法理解.Contains方法調用。你將不得不改變你的查詢,所以它與linq2nhibernate兼容。