5

列の名前とタイプは同じですが、2つの別々のエンティティからのものです。簡単な例を次に示します。

--Query View
var v_res = from s in db.V_CMUCUSTOMER
           select s;

--Values from table less values from view
var res = from s in db.CMUCUSTOMERs
          where !(from v in v_res
            select v.ID).Contains(s.ID)
         select s;

--join table and view values into one variable
var res_v_res = (from c in res
            select c).Union(from v in v_res
            select v);

ただし、次のエラーが発生します。

インスタンス引数:「System.Linq.IQueryable」からSystem.Linq.ParallelQueryに変換できません

4

2 に答える 2

0

LINQPadで同様のクエリを実行すると、sinContains(s.ID)がこのコンテキストで定義されていないことを示すエラーメッセージが表示されます。

すべてのクエリに置き換える&&と、正常に実行されます。where

于 2012-06-25T15:22:08.117 に答える
0

新しい匿名タイプを指定し、両方にToList()を使用すると、次のようにそれらを結合できるはずです。

var v_res = (from s in db.V_CMUCUSTOMER
            select new { custName = s.customer_name custAddress = s.address}).ToList();

--Values from table less values from view
var res = (from s in db.CMUCUSTOMERs
          where !(from v in v_res
            select v.ID).Contains(s.ID)
          select new { custName = s.customer_name custAddress = s.address }).ToList();

--join table and view values into one variable
var res_v_res = v_res.Union(res);

数十の列がある場合、これは面倒かもしれませんが、それでも機能するはずです。

于 2013-02-26T22:57:21.840 に答える