2012-03-27 16 views
0

I 3 TabellenWie gleiche Spalten aus verschiedenen Tabellen erhalten

Aufgabe (Id, text, contact_id)
Benutzer (ID, Name)
Unternehmen (id, name)

und 2-Übergang Tabellen

task_users (task_id, user_id)
task_companies (t ask_id, company_id)

Anmerkung: contact_id auf Benutzer-Tabelle oder Unternehmen beziehen können

Wie kann ich task id, task text, contact name in einem Criteria erhalten

+0

Sind die Tabellen den entsprechenden Objekten zugeordnet? Können wir die Zuordnung zwischen ihnen sehen? – Baz1nga

Antwort

0

Dies ist beispielsweise mit QueryOver, aber es ist fast wie ICriteria.

Contact contact = null; 
mappingSession.QueryOver<Task>() 
    .JoinAlias(() => task.Contact,() => contact) 
    .SelectList(list => list 
    .SelectGroup(task => task.Id) 
    .Select(task => task.Text) 
    .Select(() => contact.Name)) 
    .TransformUsing(Transformers.DistinctRootEntity) 
    .List(); 

Andere ist eine Zuordnung. Sie können die Basis-Entität "Kontakt" erstellen und von ihr aus Benutzer und Firma erweitern.

Verwandte Themen