5

列名称和类型是相同的,但它来自两个独立的实体。这是一个简化的示例:

--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

如果您指定一个新的匿名类型并使用 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 回答
0

当我在 LINQPad 中运行类似的查询时,我收到一条错误消息,声称sContains(s.ID)此上下文中未定义 in。

如果我替换&&where所有查询都成功执行。

于 2012-06-25T15:22:08.117 回答