Ich habe eine Document-Klasse, die eine Benutzereigenschaft hat, die der Benutzer ist, der das Dokument besitzt, aber ich habe auch eine Benutzerliste. Benutzer, die Zugriff auf das Dokument haben. Ich versuche, eine Abfrage zu erstellen, die Dokumente zurückgibt, die ich entweder besitze oder auf die ich Zugriff habe.Wie kann ich eine ODER-Abfrage in NHibernate zwischen einer Eigenschaft und vielen zu vielen hinzufügen?
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>();
Das oben ist was ich bisher versucht habe, aber ohne Erfolg. Die Struktur der Dokumentenklasse, verkürzt ist:
public class Document : DomainObject<Document>{
public Document(){
UserList = new List<User>();
}
public virtual User Owner{get;set;}
public virtual IList<User> UserList{get;set;}
}
Ich schätze jede Anleitung zu diesem Thema !!
Cheeers,
Andrew
Beispiel SQL ICH FÜR
SCHAUTdeclare @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)
Danke für die Rückmeldung. Das bedeutet, dass UserList eine Eigenschaft von Owner ist, UserList jedoch eine Eigenschaft von Document. Ich verstehe das auch als Fehler. konnte nicht auflösen Eigenschaft: UserList von: uk.co.andrewrea.BusinessLogic.Domain.Owner –
Ich habe es mit einem Beispiel sql aktualisiert Ich bin auf der Suche nach –