-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.
の作品の定義 "nullまたはEnumerable.Empty()または新しいリストを割り当てるには...エラーが発生し" ....何エラー?なぜそれがうまくいかないのか分かりません。これらの3つの可能性とエラーメッセージについて試したコードを表示してください。 –
@RenéVogt今はチェックできませんが、例えばstring.Joinやstring.Aggregateなどの関数を使用しようとすると、大文字小文字に似ています。これはEFでSQLクエリに変換できません。 – BeardedMan
あなたがその行を完全に去った場合( 'select new ProjectionType()'だけのように)? 'CollectionProperty'はデフォルトで' null'になります。 –