如何在两个IQueryable之间建立联合,其中第一个查询具有不同类型的第二个查询

时间:2015-04-22 20:14:59

标签: c# linq entity-framework

我有两个查询,第一种类型是继承第二种类型。

我需要在两个查询之间建立联合,我该怎么做?

例如:

authc=com.acme.web.filter.authc.WhitelistedBasicHttpAuthenticationFilter
authc.whitelist=192.168.1.1,192.168.1.2,192.168.2.3

当我在两个查询之间执行联合时,会发生以下错误:

  

DbUnionAllExpression需要带有兼容集合的参数   ResultTypes。

1 个答案:

答案 0 :(得分:3)

因为集合必须在元素的数量和类型上兼容,所以你可以做的唯一事情是在将它连接到query2之前向query1添加另一个为NULL的元素C.就在我的脑海中,所以你需要在Visual Studio中试用它,也许是这样的:

var query1 = base.GetQuery().Select(v => new SecondType() { A = v.Column1, B = v.Column2, C = null });