¿Podría alguien ayudarme con esta excepción? No entiendo lo que significa o cómo solucionarlo ... Es una excepción de SQL con el siguiente mensaje:SqlException acerca de UNION, INTERSECT y EXCEPTO
Todas las consultas combinadas utilizando una UNION, INTERSECT o EXCEPT deben tener el mismo número de expresiones en sus listas de objetivos.
lo entiendo cuando se ejecuta una consulta en pseudo código con este aspecto:
// 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();
Si quito los a.Union(b)
partes, se ejecuta sin excepción. Entonces sé que el error está ahí. ¿Pero por qué lo consigo? ¿Y cómo puedo solucionarlo? ¿Estoy haciendo algo demasiado loco aquí? ¿He entendido mal cómo usar la cosa Union
?
Básicamente lo que tengo es que algunas entidades que tienen una clave externa a alguna otra entidad. Y necesito obtener todas las entidades que tengan esa clave foránea establecida en null
o donde esa entidad extranjera cumpla con algunos requisitos.
¿Cuál es la excepción? –
Es una SqlException. Actualicé la pregunta =) – Svish
¿Estás seguro de que ninguna de las consultas está proyectando nada (seleccionar)? No me he encontrado con esto, pero en este momento no recuerdo si el sindicato que he hecho era linq2sql o en contra de los datos ya recuperados :( – eglasius