Linq to sql 按上次查询的多个结果选择具有LINQ的多个字段
我需要使用linq查询一个表,并将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
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:我误读了你原来的评论。现在看看。是的,那正是我想要的。感谢给予宝贵的时间