2011-04-19 68 views
0

我有這個我的Nhibernate HQL查詢有什麼問題?

public List<TableA> GetRecords(List<string> keys) 
    { 
     const string query = "FROM TableA WHERE `Key` = :keys"; 
     return session.CreateQuery(query).SetParameterList("keys",keys).List<TableA>().ToList(); 
    } 

我得到它無法執行錯誤,當我看着它「無法執行查詢」

我的where子句總是等於「?」 。所以,這就像沒有使用我的名單,以填補進去。

編輯

如果我有這樣的

List<strings> myKeys = new List<strings> {"1", "2"}; 
GetRecords(myKeys) 

它會失敗

如果我有

List<strings> myKeys = new List<strings> {"1"}; 
GetRecords(myKeys) 

它的工作原理。所以它不能以某種原因處理多個值。

回答

3

你應該有「的」而不是「=」

const string query = "FROM TableA WHERE Key in (:keys)"; 
+0

所以當你使用「=」號? – chobo2 2011-04-19 03:41:51

+0

當你想匹配一個值... – psousa 2011-04-19 03:48:40