没有函数的日期过滤集合

时间:2009-06-24 11:37:37

标签: c# nhibernate fluent-nhibernate

我有一个类似于下面的实体:

public class Entity
{
    public List<DateItem> PastDates { get; set; }
    public List<DateItem> FutureDates { get; set; }
}

public class DateItem
{
    public DateTime Date { get; set; }
    /*
     * Other Properties
     * */
}

其中PastDates和FutureDates都映射到相同的类型/表。我一直试图找到一种方法让Nhibernate自动映射Past和Future属性。我最接近的是映射的where子句如下

HasMany(x => x.PastDates)
            .AsBag().Cascade
            .AllDeleteOrphan()
            .KeyColumnNames.Add("EventId").Where("Date < currentdate()")
            .Inverse();

其中currentdate是UDF。我不想拥有这些特定于数据库的函数,如果我可以避免它,主要是因为我不能用SQLite测试我的DAL,因为它不支持函数或存储过程。

目前,我正在使用Criteria构建过去和未来的集合,并手动添加到我的DTO。

任何人都知道如何在不使用任何UDF的情况下实现这一目标吗?

非常感谢,

1 个答案:

答案 0 :(得分:1)

我不确定,但我认为Where字符串不会被解析;它只是纯SQL并直接注入查询。我可能错了,所以用自己的自定义函数来查看像extending the dialect这样的东西可能是值得的(这意味着你也可以对你的内存方言做同样的事情)。