У меня есть класс Document, в котором есть свойство User, то есть пользователь, которому принадлежит документ, но также у меня есть список пользователей. Пользователи, которые имеют доступ к документу. Я пытаюсь создать запрос, который будет возвращать документы, которыми я владею или у меня есть доступ.
IList<Document> results = UnitOfWork.CurrentSession.CreateCriteria(typeof(Document))
.CreateCriteria("Owner")
.CreateCriteria("UserList")
.Add(nh.Criterion.Restrictions.IdEq(obj.Id))
.SetFirstResult(pageSize * page)
.SetMaxResults(pageSize)
.List<Document>();
Это то, что я пробовал до сих пор, но безрезультатно. Структура класса Document, сокращенная:
public class Document : DomainObject<Document>{
public Document(){
UserList = new List<User>();
}
public virtual User Owner{get;set;}
public virtual IList<User> UserList{get;set;}
}
Я ценю любое руководство по этому вопросу!
Cheeers
Andrew
ПРИМЕР SQL Я ИЩУ
declare @UserID uniqueidentifier
set @UserID = '37f7a55f-84c9-461b-a5b2-b412fe96932b'
select * from [Document] s
where s.UserID = @UserID
or exists(select * from DocumentUser su where su.userid = @UserID)