[OK]を、私は何かダムを行う必要がありますが、この作品ではないはずですか?私は次の3つのリストを持っています:LINQで3つのリストを1つに連結すると、例外がスローされます
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();
そして私は、これらのリストのいずれかを返すことができます:私はこれらのリストのいずれかを返すことができ
return commonViews.Concat(ownedViews).ToList();
しかし、私は3つすべてを返却しようとすると:
return commonViews.Concat(ownedViews).Concat(sharedViews).ToList();
を
例外が発生します。
'Entity.TPM_VIEWS'タイプの定数値を作成できません。このコンテキストでは、 プリミティブ型または列挙型のみがサポートされています。
私は間違っていますか? 3つの値はすべて実際に列挙可能です。ほとんどの場合、私はこの問題を尋ねています。なぜなら、投稿してから30秒後に問題に気付くことを保証するための最良の方法だからです。
UPDATE:
私は問題がここにある93%確信している:このはTPM_VIEWS
オブジェクトの列挙リストのように見える
var sharedViews = (from v in context.TPM_USER.Include("TPM_VIEWS2") where v.USERID == userId select v).First().TPM_VIEWS2;
、と私はそれにToList()
を呼び出すことができますし、正しいデータを取得しますが、他のリストとはうまく動作しません。
UPDATE 2:
これは実際に動作します。なぜ私に教えることができる人へのポイント!
commonViews.ToList().Concat(ownedViews.ToList()).Concat(sharedViews.ToList()).ToList();
「sharedViews」を先に入れてみてください。はい;私は真剣にそれを修正するだろうと思う。 – SLaks
EFの私の非常に基本的な歴史に基づいて、私は賞を賭けることを喜んでいるでしょう@SLaksは正しいです。 – JerKimball
これは奇妙です。 'sharedViews.Concat(commonViews).Concat(ownedViews).Count()'は6(正しい)を返しますが、 'sharedViews.Concat(commonViews).Concat(ownedViews).ToList();'は同じ例外をスローします。 'sharedViews'を使っているのは確かなことです。基本的には、与えられた 'userId'から' IEnumerable 'を取得する必要があります。 –