在MonoRail / Active Record中,如果我想获取某个列等于null的所有记录,我可以这样做:
public static Category[] AllParentCategories()
{
return (FindAllByProperty("Parent.Id", null));
}
但是,如果我想获取该列不等于null的所有记录,该怎么办?我无法弄清楚如何使用这个FindAllByProperty方法做到这一点,是否有另一种方法更灵活或使用类似linq的查询语言获取记录?
谢谢, 贾斯汀
答案 0 :(得分:1)
在NHibernate 2.1(以及扩展名为Castle ActiveRecord)中,您基本上可以选择三种查询API:
有标准:
return ActiveRecordMediator<Category>.FindAll(Restrictions.IsNotNull("Parent"));
Linq:
return (from c in ActiveRecordLinq.AsQueryable<Category>()
where c.Parent != null
select c).ToArray();
要获得Linq支持,您需要NHibernate.Linq.dll和Castle.ActiveRecord.Linq.dll(最新的ActiveRecord版本包含所有内容)。