我对 NHibernate 还是很陌生。搜索所以如果这是一个愚蠢的问题,请多多包涵:)
比如说,我已经索引了一些 BlogPost 类型的实体,它有一个名为 IsDeleted 的属性。如果 IsDeleted 设置为 true,我不希望我的查询显示此特定博文。
这可能吗?如果是 - 如何?:P
在此先感谢-cwap
我对 NHibernate 还是很陌生。搜索所以如果这是一个愚蠢的问题,请多多包涵:)
比如说,我已经索引了一些 BlogPost 类型的实体,它有一个名为 IsDeleted 的属性。如果 IsDeleted 设置为 true,我不希望我的查询显示此特定博文。
这可能吗?如果是 - 如何?:P
在此先感谢-cwap
// Using NHibernate.Linq:
var result = Session.Linq<BlogPost>().Where(post => !post.IsDeleted).ToList();
// Using HQL:
var hql = "from BlogPost bp where bp.IsDeleted == false";
var result = Session.CreateQuery(hql).List<BlogPost>();
// Using Criteria API:
var result = s.CreateCriteria(typeof(BlogPost))
.Add(Restrictions.Eq("IsDeleted", false));
.List<BlogPost>();
自己找到了解决方案。我将 [Field(Index.Tokenized, Store = Store.Yes)] 属性添加到 IsDeleted 属性,并将此子句添加到任何入站查询:
string q = "(" + userQuery + ") AND IsDeleted:False";
我知道这很简单:)