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 を使用したいと考えています。

EventOrganizer に EventID があり、EventOrganizer コレクションに存在するイベント ID のみを選択したい

EventID に別の変数変数があります

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

このようなもの

どこ

    EventOrg.OrganizerID == MstrOrg.OrganizerID

    &&  EventOrg.EventID in EventID.ID

どうすればこれを達成できますか?

私はあなたの助けに感謝します

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

Entity Framework を使用している場合は、Contains ステートメントを使用できません。これは、Linq で簡単に解決できます。SO Linq 2 エンティティだけの場合は、「where EventId.Contains(EventOrg.Id)」のような where 句を使用します。

実際に Entity Framework を使用している場合は、EventID コレクションの ID に基づいて or 式を作成する必要があります。

于 2010-01-29T09:14:01.620 に答える