2012-02-11 11 views
0

誰かが助けてくれることを祈っています。指定されたタイプのメンバは、エンティティへのlinqではサポートされていません

私は、レガシーSQL2005データベースの2つのテーブルにマップする2つのPOCOベースのエンティティを持つEF4コンテキストを持っています。テーブル間の関係や、コンテキスト内のエンティティ定義間の関連付けはありません。

public class Venue 
{ 
    public Venue(){} 
    public string LocationCode {get;set;} 
    public string LocationName {get;set;} 
} 

public class Booking 
{ 
    public Booking(){} 
    public string LocationCode {get;set;} 
    public int EventReference {get;set;} 
    public Venue BookingVenue {get;set;} 
    public Event BookingEvent {get;set;} 
} 

public class Event 
{ 
    public Event(){} 
    public int EventReference {get;set;} 
    public DateTime EventStart {get;set;} 
    /* plus another 60 or so properties */ 
} 

私は、LINQを行うことができます個別に選択するが、私がしようとすると、イベントと予約の間に参加するたびに、私は

指定された型のメンバを取得「BookingEvent」エンティティにLINQではサポートされていません。初期化子、エンティティメンバー、エンティティナビゲーションプロパティのみがサポートされています。

私はウェブ上で見つけることができるすべての回避策を試してきました(enums、calcualtedプロパティなどはありません)、私は今や少し不満です。

ヘルプ?ここで は、モデル内の関係がなければ、質問....

List<Booking> bookings = (from b in CalendarDB.Bookings 
    join e in CalendarDB.Events join b.EventReference on e.EventReference 
    select b).ToList(); 
+1

問題の参加コードを表示できますか? – BrokenGlass

答えて

0

でクエリだ、私はEFは、データが上に参加するために使用するかを把握することができないと思います。 BookingクラスにBookingEventプロパティがあるにもかかわらず、EFはBooking.EventReferenceに基づいてEventテーブルに参加する必要があることだけを知っているだけではありません。そのため、これらの参照プロパティを使用しようとするクエリは失敗します。

+0

申し訳ありませんが、私はLINQクエリの例を挙げておくべきです、それはかなりシンプルです。私は元の質問にそれを含めました。それは単なる手動の参加であることがわかります。 –

関連する問題