2010-01-29 96 views
2
List<HelprClass.Organizer> org = 
    (from EventOrg in cntx.EventOrganizer 
    from MstrOrg in cntx.Organizer 
    where EventOrg.OrganizerID == MstrOrg.OrganizerID 
    Select new HelprClass.Organizer 
    { 
    OrganizerName = MstrOrg.OrganizerName 
    }).ToList() 

這項工作很好,現在我想在上述查詢中使用IN Opeartor。IN運營商在哪裏條款

在EventOrganizer

我有事件ID現在我只需要選擇事件ID在EventOrganizer收集

exsist我有事件ID的另一個變種varibale

Var EventID= From EvntID in Evetn Select new {ID= EvntID.EventID}; 

像這樣的事情

其中

EventOrg.OrganizerID == MstrOrg.OrganizerID 

    && EventOrg.EventID in EventID.ID 

我該如何實現這一目標?

我會感謝您的幫助

回答

0

如果您正在使用實體框架,你不能使用包含語句,這將是在LINQ的一個簡單的解決方案。因此,如果它只是Linq 2實體,請使用where子句,如「Where EventId.Contains(EventOrg.Id)」

如果確實使用實體框架,則必須根據EventID中的Id構建或表達式採集。

1

試試這個:

var EventIDs = from EvntID in Event select EvntID.EventID; 

var org = (from EventOrg in cntx.EventOrganizer 
      from MstrOrg in cntx.Organizer 
      where EventOrg.OrganizerID == MstrOrg.OrganizerID 
      select new {E=EventOrg, M=MstrOrg} 
     ).ToList(); 


org = org 
     .Where(o => EventIDs.Contains(o.E.EventID)) 
     .Select(o => new HelprClass.Organizer 
      { 
       OrganizerName = o.M.OrganizerName 
      } 
     );