使用IQueryable<;匿名类型>;在第二次联接中
本文关键字:第二次 gt IQueryable lt 使用 类型 | 更新日期: 2023-09-27 18:20:53
我有一个带有多个联接的查询。我的第一个查询运行得很好,但当我想在第二个联接中使用这个结果(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});
您正在影响第二个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});