有人能帮我解决这个异常吗?我不明白它的含义或如何解决它... 这是一个 SqlException 异常,其消息如下:
使用 UNION、INTERSECT 或 EXCEPT 操作符组合的所有查询必须在其目标列表中具有相等数量的表达式。
当我运行类似于以下伪代码的查询时会出现此异常:
// Some filtering of data
var query = data.Subjects
.Where(has value)
.Where(has other value among some set of values);
// More filtering, where I need to have two different options
var a = query
.Where(some foreign key is null);
var b = query
.Where(some foreign key is not null)
.Where(and that foreign key has a property which is what I want);
query = a.Union(b);
// Final filter and then get result as a list
var list = query
.Where(last requirement)
.ToList();
如果我删除部分,它可以运行而不会出现异常。所以我知道错误就在那里。但是为什么会出错呢?我该如何修复它?我做的事情太过疯狂了吗?我是否误解了如何使用Union?
基本上我有一些实体,这些实体具有对某些其他实体的外键。我需要获取所有将该外键设置为或者满足某些要求的外键实体。