6
var transactions = from t in context.Transactions 
           group t.Create_Date_Time by t.Participation_Id 
            into t1 
            select new { ParticipationId = t1.Key, CreateDateTime = t1.Max() }; 

      var cases = from c in context.Cases 
         group c.Create_Date_Time by c.Participation_Id 
          into c1 
          select new { ParticipationId = c1.Key, CreateDateTime = c1.Max() }; 

      var interactions = (from i in context.Interactions 
           join pp in context.Party_Participation on i.Party_Id equals pp.Party_Id 
           group i.Last_Update_Date_Time.HasValue ? i.Last_Update_Date_Time : i.Create_Date_Time by 
            pp.Participation_Id 
           into i1 
           select new {ParticipationId = i1.Key, CreateDateTime = i1.Max()}).AsQueryable(); 

Teniendo en cuenta el código anterior, siguiendo trabajaráCómo convertir Linq.ParallelQuery a Linq.IQueryable

transactions.Union(cases); 

Sin embargo, tras no funcionará

transactions.Union(interactions); 

Debido a que las transacciones y casos tanto están regresando Linq.IQueryable pero el último es Linq.ParallelQuery debido a que se une con otra mesa.

que necesita esta funcionalidad, básicamente, para hacer de la Unión. interactions.Union(transactions) o transactions.Union(interactions) uno con el otro.

+0

hicieron intenta interactions.Union (transacciones), que debería funcionar –

+0

@KIvanov por desgracia, no está funcionando. – Elangesh

+0

try interactions.Union (transactions.AsEnumerable()); –

Respuesta

1

Mi respuesta a esta pregunta puede ser incorrecta embargo levanté esta pregunta primariamente para el siguiente problema. LINQ to Entities Union is throwing an error.

encontré una respuesta fantástica de diceguyd30 y se resolvió mi problema. Por lo tanto, estoy cerrando esta pregunta en respuesta a la respuesta de mi pregunta anterior.

0
interactions.Union(transactions.AsEnumerable()); 

que debe trabajar desde el primer parámetro es IQueryable y el segundo es IEnumerable

Queryable.Union<TSource> Method (IQueryable<TSource>, IEnumerable<TSource>) 
+0

@K Ivanov, no está arrojando el siguiente error. error argumento Instancia: no se puede convertir de 'System.Linq.IQueryable ' a 'System.Linq.ParallelQuery ' Error \t \t 2 'System.Linq.IQueryable 'no contiene una definición de 'Unión' y el mejor método de extensión de sobrecarga' System.Linq.ParallelEnumerable.Union (System.Linq.ParallelQuery , System.Collections.Generic.IEnumerable ) 'tiene algunos argumentos no válidos – Elangesh

+0

el problema con .AsEnumerable() es que ejecutará la consulta y traerá todos los datos –

+0

no Acabo de utilizar con fines de prueba – Elangesh

1

El tipo anónimo de transactions y cases es el mismo. El tipo anónimo de interactions es diferente!

Así que la solución es select de una manera que hace que los tipos anónimos del mismo. Por lo tanto, cree su propio tipo o convierta las propiedades del producto seleccionado al mismo tipo.

Algo como esto debería producir el mismo tipo anónimo para todos los seleccionados:

select new { ParticipationId = (int)c1.Key, CreateDateTime = (DateTime)c1.Max() }