Не могу догадаться, что делает SearchTemplate, но вы применяете проекцию к внешнему критерию, а не к отдельному.
Кроме того, «корневыми» критериями должны быть TravelPlan, а не Ticket.
Другими словами:
criteria = DetachedCriteria.For<TravelPlan>()
.Add(Subqueries.PropertyNotIn(
"UserId",
DetachedCriteria.For<Ticket>()
.SetProjection(Projections.Property("UID"))))
Предполагается, что TravelPlan имеет свойство UserID
, соответствующее свойству UID
в Ticket.