现在我有一个 FilterDefinition:
public class PurposeFilter:FilterDefinition
{
public PurposeFilter()
: base(NHibernateFilters.PurposeFilter, "PurposeId = :purposeId",
new Dictionary<string, IType> { { "purposeId", NHibernateUtil.Int64 } }, false)
{}
}
这增加了一个 WHERE PurposeId = <someId>
到生成的 SQL。但是,我想添加对多个 ID 的支持,因此生成的 SQL 将是 WHERE PurposeId IN (<someId>, <someOtherId>)
.我有以下代码(不起作用)- 关于如何支持它有什么建议吗?
public class MultiPurposeFilter : FilterDefinition
{
public MultiPurposeFilter()
: base(NHibernateFilters.MultiPurposeFilter, "PurposeId IN (purposeIds)"
, new Dictionary<string, IType> { { "purposeIds", NHibernateUtil.Int64 } }, false)
{
}
}
最佳答案
我还没有尝试过,但是你可以使用 PurposeId IN (:purposeIds)
和 SetParameterList
方法来设置值。
关于c# - 带有数组参数的过滤器定义 (SQL : WHERE IN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953317/