わかりました、私はばかげたことをしているに違いありませんが、これでうまくいくのではないでしょうか? 次の 3 つのリストがあります。
var commonViews = (from v in context.TPM_VIEWS where v.VIEWID < 0 select v); // IQueryable<TPM_VIEWS>
var ownedViews = (from v in context.TPM_VIEWS where v.OWNERID == userId && v.VIEWID > 0 select v); // IQueryable<TPM_VIEWS>
var sharedViews = (from v in context.TPM_USER.Include("TPM_VIEWS2") where v.USERID == userId select v).First().TPM_VIEWS2; // EntityCollection<TPM_VIEWS>
各リストには適切な値とカウントがあります。これらのリストのいずれかを返すことができます。
return commonViews.ToList();
そして、これらのリストのいずれか2 つを返すことができます。
return commonViews.Concat(ownedViews).ToList();
ただし、3つすべてを返そうとすると:
return commonViews.Concat(ownedViews).Concat(sharedViews).ToList();
私は例外を受け取ります:
タイプ 'Entity.TPM_VIEWS' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
私は何を間違っていますか?3 つの値はすべて実際に列挙可能です。ほとんどの場合、私がこの質問をするのは、投稿後 30 秒以内に問題に気付くことを保証する最善の方法だからです。
アップデート:
問題がここにあると 93% 確信しています。
var sharedViews = (from v in context.TPM_USER.Include("TPM_VIEWS2") where v.USERID == userId select v).First().TPM_VIEWS2;
これはオブジェクトの列挙可能なリストのように見えますTPM_VIEWS
。これを呼び出しToList()
て正しいデータを取得することはできますが、他のリストではうまく機能しません。
更新 2:
これは実際に機能します。理由を教えてくれる人を指さして!
commonViews.ToList().Concat(ownedViews.ToList()).Concat(sharedViews.ToList()).ToList();