我的Nhibernate HQL查询有什么问题?

时间:2011-04-19 02:39:57

标签: nhibernate

我有这个

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)

有效。所以它不能因某种原因处理多个值。

1 个答案:

答案 0 :(得分:3)

你应该有“in”而不是“=”

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