I have the following model:

public class User{
    public virtual int Id { get; set; }
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }
    public virtual string Email { get; set; }
    public IList<SubmissionNote> Notes { get;set; }}
public class SubmissionNote{
    public virtual Int64 Id { get; set; }
    public virtual string Text { get; set; }
    public virtual DateTime CreatedOn { get; set; }
    public virtual User Creator { get; set; }
    public virtual Submission BelongsTo { get; set; }}
public class Submission{
    public virtual Int64 Id { get; set; }
    public virtual DateTime HappenedOn { get; set; }
    public virtual int StatusCode { get; set; }}


I would like to write a query that brings all the Submissions whose last 
note was entered by some user or a list of users (identified by their 
names). I would appreciate your help for building this query using 
NHibernate QueryOver API. I have been able to create a query to bring all 
the last notes as follows:

SubmissionNote alias = null;var lastNote = session.QueryOver<SubmissionNote>()
    .SelectList(list => list.
        SelectGroup(x => x.BelongsTo).WithAlias(() => alias.BelongsTo).
        SelectMax(x => x.CreatedOn).WithAlias(() => alias.CreatedOn).
        Select(x => x.Creator).WithAlias(() => alias.Creator).
        Select(x => x.Id).WithAlias(() => alias.Id).
        Select(x => x.Text).WithAlias(() => alias.Text))
    .TransformUsing(Transformers.AliasToBean<SubmissionNote>())
    .List();

Can I use the specified query as a subquery to produce the required result? 
Or do you suggest another solution?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/2IoDzZm49_8J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to