0

次のクエリがあります

            var db = new Entities();
            IQueryable<Tbl_RSCRegularSupply> qrySupp = (from cont in db.Tbl_RSC
                                                        where cont.ID == contractID
                                                        let RegSupp = new
                                                       {
                                                           RegSupply = from R in cont.Tbl_RSCSupplyPlan
                                                                       select R.Tbl_RSCRegularSupply
                                                       }

                                                        select (Tbl_RSCRegularSupply)RegSupp.RegSupply);


            return qrySupp.AsParallel().ToList();

しかし、これを実行すると、次の例外が作成されます。

タイプ 'System.Collections.Generic.IEnumerable`1' をタイプ 'Tbl_RSCRegularSupply' にキャストできません。LINQ to Entities は、Entity Data Model プリミティブ型のキャストのみをサポートします。

List<Tbl_RSCRegularSupply>上記のクエリから取得するのは良い方法ですか。

4

1 に答える 1

0

問題は、それRegSupp.RegSupplyが であるIEnumerable<EntitySet<Tbl_RSCRegularSupply>>ため、 にキャストできないことTbl_RSCRegularSupplyです。つまり、アイテムのリストではなく、リストのリストがあります。

私はあなたの仕様を知りませんが、あなたはすることができます

} ... select RegSupp.RegSupply.Selectmany(r => r));

結果を1つのリストにフラット化します。

于 2012-04-24T11:29:43.330 に答える