2016-06-02 12 views
-1

2つの追加テーブル(A,B)への参照を持つテーブル(T)があります(両方の参照がNULL可能ですが、1行につき1つも入力されています)。私はすべて3からのユニオンデータが必要です。の行がAを参照する場合、Aのデータが必要です。Bの場合はBのデータが必要です。これは問題ではありませんが、テーブルAに文字列の集まりがありますが、テーブルBには(nullまたはEnumerable.Empty<string>()またはnew List ...エラーが発生します)割り当てられていません。何か案は?LINQユニオン2テーブル

イラスト:

(from t in context.T 
join a in context.A on t.RefA_ID equals a.ID 
select new ProjectionType 
{ 
    ... 
    CollectionProperty = a.Collection 
}).Union(
from t in context.T 
join b in context.B on t.RefB_ID equals b.ID 
select new ProjectionType 
{ 
    ... 
    CollectionProperty = WHAT_SHOULD_I_PUT_THERE??? // needed because of union 
}) 

EDIT: 多分簡単な質問は次のようになります。エンティティにLINQで空のコレクションを投影する方法は?

EDIT2:例外: A type that implements IEnumerable 'System.Collections.Generic.List...' cannot be initialized in a LINQ to Entities query.

+0

の作品の定義 "nullまたはEnumerable.Empty()または新しいリストを割り当てるには...エラーが発生し" ....何エラー?なぜそれがうまくいかないのか分かりません。これらの3つの可能性とエラーメッセージについて試したコードを表示してください。 –

+0

@RenéVogt今はチェックできませんが、例えばstring.Joinやstring.Aggregateなどの関数を使用しようとすると、大文字小文字に似ています。これはEFでSQLクエリに変換できません。 – BeardedMan

+0

あなたがその行を完全に去った場合( 'select new ProjectionType()'だけのように)? 'CollectionProperty'はデフォルトで' null'になります。 –

答えて

0

それはそう、クエリ外部のダミー変数が

関連する問題