2011-03-07 12 views
0

は、私がイベントにリンクされていない(そのクラスを含む)すべてのセミナーのリストを取得したいLINQと条件

EVENT 
--- EVENTID (PK) 

EVENTSEMINAR 
--- EVENTID (PFK) 
--- SEMINARID (PFK) 

SEMINAR 
--- SEMINARID (PK) 

SEMINARCLASS 
--- SEMINARID (PFK) 
--- CLASSID. (PK) 
--- Date 

このデータベース構造を持っており、特定の日付の後に発生します。

Select * 
from Seminar, SeminarClass 
Where (Seminar.SeminarId not in (select SeminarId 
           from EventSeminar) 
     and seminar.SeminarId = SeminarClass.SemianrId 
     and SeminarClass.Date > something); 

これをどのようにしてLINQ 2エンティティに変換できますか?いくつかのクエリでこれをachiveしようとしている

私はに期待するパラメータとして、1の結果を使用することはできませんとして私にいくつかのトラブルを引き起こし

は、(それが唯一のナビゲーションプロパティだとして、EventSeminarとしてはそのような実体は存在しません)あなたはでナビゲーションプロパティを表示しません

答えて

0
var q = from s in context.Seminars 
     where s.Date > something 
       && (!s.Events.Any()) 
     select s; 

...

var Seminars = from e in context.Event 
           .Include("Seminar") 
           .Where(x=>x.Seminar != null) 
       select e.Seminar; 

var SC = from c in context.Seminar.Except(Seminars) select c; 

いくつかの助けを必要とする:第2回..私は達成する方法がわからない、いくつかの変換を必要としますEventSeminarからEventまでのナビゲーションのための、私は間違っていると推測すれば上記のように置き換えてください。

+0

SeminarClassには日付がありますが、それ以外の場合はs.Event.Any()(count == 0)という正しい方向を指しています。 – Dani

+0

SeminarClassのカーディナリティは、あなたの質問から明らかではありませんでした。あなたは今答えを持っていますか、それとも助けが必要ですか?もしそうなら、「セミナー - >セミナークラス」の基数は何ですか? –