Как отключить некоторые объекты на основе нескольких свойств в поиске NHibernate? - PullRequest
0 голосов
/ 13 июля 2010

Я все еще довольно новичок в NHibernate.Search, поэтому, пожалуйста, потерпите меня, если это глупый вопрос:)

Скажем, я проиндексировал некоторые объекты типа BlogPost, у которых есть свойство IsDeleted.Если для IsDeleted установлено значение true, я не хочу, чтобы в моих запросах отображался этот конкретный блог.

Возможно ли это?И если это - как?: P

Заранее спасибо - cwap

Ответы [ 2 ]

0 голосов
/ 28 июля 2010

Нашел решение сам. Я добавил атрибут [Field (Index.Tokenized, Store = Store.Yes)] - в свойство IsDeleted и добавил это предложение в любой входящий запрос:

string q = "(" + userQuery + ") AND IsDeleted:False";

Я знал, что это было что-то простое:)

0 голосов
/ 28 июля 2010
// 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>();
...