c# - 带有数组参数的过滤器定义 (SQL : WHERE IN)

标签 c# nhibernate

现在我有一个 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/

相关文章:

c# - NHibernate:如何设置连接超时

c# - Fluent NHibernate SqlDateTime 溢出异常

sql-server - 有没有办法让 NHibernate 发出死锁提示?

c# - 元素未添加到列表中

c# - 什么是 C# 解决方案以及如何使用它?

c# - Properties.Settings.Default 是否有非默认替代方案?

c# - Azure 存储计数事务

c# - 从串口只读取 8 个字符

c# - 使用linq从多个列表中执行一个对象的方法

c# - NHibernate 警告 Narrowing proxy to - this operation breaks ==