现在我有一个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方法来设置值。

10-07 12:36