2012-04-24 13 views
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>を取得するのは良い方法ですか?

答えて

0

RegSupp.RegSupplyIEnumerable<EntitySet<Tbl_RSCRegularSupply>>なので、Tbl_RSCRegularSupplyにキャストすることはできません。言い換えれば、リストのリストではなく、アイテムのリストです。

私はあなたの仕様を知らないが、あなたは1つのリストに結果を平らに

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

を行うことができます。

+0

IEnumerable >のようなものを返すということに私は同意しますが、リストを取得するにはどうすればいいですか? – Shamim

+0

'Selectmany'はこれを行う必要があります...? (ToList()が続きます)。 –

関連する問題