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()

This work fine now i want to use IN Opeartor in the above Query.

in the EventOrganizer I have EventID now i want to select only Event ID exsist in EventOrganizer collection

I have EventID another var varibale

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

Something like this

where

    EventOrg.OrganizerID == MstrOrg.OrganizerID

    &&  EventOrg.EventID in EventID.ID

How I can achive this ?

I will appreciate your help

4

2 回答 2

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
           }
         );  
于 2010-01-29T09:14:50.873 回答
0

如果您使用的是实体框架,则不能使用 Contains 语句,这在 Linq 中将是一个简单的解决方案。因此,如果它只是 Linq 2 实体,请使用 where 子句,如“where EventId.Contains(EventOrg.Id)”

如果您确实在使用实体框架,则必须基于 EventID 集合中的 Id 构建一个 or 表达式。

于 2010-01-29T09:14:01.620 回答