私は難しい。この問題を理解することが生じています:LINQツーエンティティ(指定したタイプのメンバーが「」エンティティにLINQではサポートされていません)
ここでは、私はエンティティへのLINQを使用して実装する必要がT-SQLクエリですVS2010で
select r.ReviewID, b.BusinessID, b.Name as BusinessName ,r.Description
from gb_business.Review r
inner join gb_business.Business b on r.BusinessID = b.BusinessID
inner join gb_listing.RegionalService rs on b.BusinessID = rs.BusinessID
where r.ReviewStatusID=1 and rs.TypeID=1 and rs.IsMain=1
はそれが
var res1 = (from r in context.Review
join b in context.Business on r.BusinessID equals b.BusinessID
join rs in context.RegionalService on b.BusinessID equals rs.Business.BusinessID
select r).ToList();
この表現は良くなく、実行時にコンパイル(節がなし)、このようになります。指定された型メンバー 'BusinessID'は、LINQ to Entitiesではサポートされていません。初期化子、エンティティメンバー、エンティティナビゲーションプロパティのみがサポートされています。
なぜBusinessIDが問題なのでしょうか。ありがとうございました。
「BusinessID」はどのデータ型ですか?また、2回目の参加は関連付けを介してリンクします。 ( 'rs.BusinessID'の代わりに' rs.Business.BusinessID'を私が期待していた通りです) – GalacticCowboy
これは3つのテーブルすべてがintであるため、BusinessとRegionalServiceはBusinessIDを通じて1対多に接続されています。なぜそれがBusinessIDを好きではないのですか? linqツリーを掘り下げる方法とクエリがSQL構文に変換する方法はありますか?ありがとうございました。 – itisinteresting
あなたはあなたの 'rs.Business.BusinessID'を修正しましたか? 'rs.BusinessID'でなければなりません。別のエンティティ( 'Business.BusinessID')のエンティティメンバーの' RegionalService'エンティティに参加することはできません。 – surfen