0

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;

ありがとう

4

1 に答える 1

1

入会希望のようです。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;
于 2013-01-21T07:12:07.873 に答える