在第二个连接</anonymoustype>中使用IQueryable <anonymoustype>

时间:2013-07-02 14:42:53

标签: c# nhibernate

我有一个包含多个连接的查询。 我的第一个查询工作正常,但是当我想在第二次连接中使用此结果(IQueryable)时,我收到错误。 如何在第二个查询中使用我的第一个结果对象?

谢谢!

ISession session = NHibernateSessionManager.Instance.GetSession(SessionFactoryConfigPath);

IQueryable<Approval> approvals = session.Query<Approval>();
IQueryable<Ticket> tickets = session.Query<Ticket>()
            .Where(t => t.Canceled == null 
                        && t.IsNotified == null);
IQueryable<Notification> notifications = session.Query<Notification>();

var qry = approvals.Join(tickets, 
                            a => a.TicketID, 
                            t => t.ID, 
                            (a, t) => new { Ticket = t, Approval = a });

//here I want to use my IQueryable<Anonymous> object to create my second join.
qry = notifications.Join(qry, 
                        n => n.DatabaseID, 
                        anon => anon.Ticket.DatabaseID, 
                        (n, anon) => 
                            new {Ticket = anon.Ticket, 
                                Approval = anon.Approval, 
                                Notification = n});

1 个答案:

答案 0 :(得分:4)

您正在影响第二个Join...qry的结果,它们的类型不同。

使用其他变量:

var result = notifications.Join(qry, 
                        n => n.DatabaseID, 
                        anon => anon.Ticket.DatabaseID, 
                        (n, anon) => 
                            new {Ticket = anon.Ticket, 
                                Approval = anon.Approval, 
                                Notification = n});