列名稱和類型相同,但它來自兩個單獨的實體。下面是一個簡單的例子:使用LINQ將不同類型的兩個IQueryable變量連接在一起
--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
我敢打賭,如果你停止使用'var',答案會很清楚。通過讓編譯器選擇v_res和res的類型,您可以選擇其中的選項。 –
請詳細說明。 – stats101
編譯器可以爲這些變量之一選擇一個意外的類型,然後它可以根據該選項(System.Linq.Enumerable.Union,System.Linq.Queryable.Union命名兩個可能性)在Union的不同實現之間進行選擇。 。相反,如果你指定了類型,那麼編譯器會在你要求不可能的時候告訴你。 –