Linq to sql 按上次查询的多个结果选择具有LINQ的多个字段

Linq to sql 按上次查询的多个结果选择具有LINQ的多个字段,linq-to-sql,Linq To Sql,我需要使用linq查询一个表,并将linq查询返回的行绑定到一个对象 WebChatDBDataContext dataContext = new WebChatDBDataContext(); var executiveSession= dataContext.ExecutiveSessions.FirstOrDefault(s => s.SessionId == httpcontext.Session.SessionID); var talkerId = (from cRoom in

我需要使用linq查询一个表,并将linq查询返回的行绑定到一个对象

WebChatDBDataContext dataContext = new WebChatDBDataContext();
var executiveSession= dataContext.ExecutiveSessions.FirstOrDefault(s => s.SessionId == httpcontext.Session.SessionID);
var talkerId = (from cRoom in dataContext.ChatRooms
                where cRoom.ExecutiveId == executiveSession.ExecutiveSessionId
                select cRoom.TalkerId
               );
var msglst = from msgPool in dataContext.MessagePools
             // I want to use talkerId from the previous query
             where msgPool.TalkerId == ???
            select msglst;

thanx

听起来你想加入。如果您不需要
talkerId
进行任何其他操作,那么在单个查询中执行此操作将是最简单的:

var executiveSessionId = dataContext.ExecutiveSessions
        .FirstOrDefault(s => s.SessionId == httpcontext.Session.SessionID)
        .ExecutiveSessionId;

var pools = from room in dataContext.Rooms
            where room.ExecutiveId == executiveSessionId
            join pool in dataContext.MessagePools
              on room.TalkerId equals pool.TalkerId
            select pool;

您使用的是一个查询,因此您的
talkerId
变量实际上是一个ID序列。你希望它只有一个值吗?不,我不希望它只有一个值。。。我希望MessagePools表中的所有消息都包含talkerId(1,2,3,…等),然后您需要将其放入代码中…嘎-误读注释。编辑…@user1521447:我误读了你原来的评论。现在看看。是的,那正是我想要的。感谢给予宝贵的时间