我有一个类似于下面的实体:
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的情况下实现这一目标吗?
非常感谢,
答案 0 :(得分:1)
我不确定,但我认为Where
字符串不会被解析;它只是纯SQL并直接注入查询。我可能错了,所以用自己的自定义函数来查看像extending the dialect这样的东西可能是值得的(这意味着你也可以对你的内存方言做同样的事情)。