2010-05-20 2 views
0

J'ai la requête SQL suivante, note Je veux la valeur littérale '0' dans le deuxième champ dans la deuxième instruction SELECT de la table ItemSale. Comment l'exprimer dans LINQ? Je reçois le message d'erreur 'Déclarant de membre de type anonyme non valide'.comment spécifier la valeur littérale dans l'union linq

SELECT BranchNumber,QuantitySold 
FROM Department 
UNION 
SELECT BranchNumber,0 
FROM ItemSale 

Comment exprimer le «0» dans LINQ?

var unionQuery = (from dept in Department 
          select new 
          { 
           dept.BranchNumber, 
           dept.QuantitySold, 
          }) 
          .Concat(from item in ItemSale 
           select new 
           { 
            item.BranchNumber, 
            0 
           }); 
+0

Désolé, placé au mauvais endroit. – lowlyintern

Répondre

1

Dans LINQ, le champ doit avoir un nom correspondant au champ correspondant dans l'autre type anonyme.

select new 
{ 
    item.BranchNumber, 
    QuantitySold=0 
}); 
+0

Malheureusement, cela provoque l'erreur suivante: Les arguments de type pour la méthode 'System.Linq.Queryable.Concat (System.Linq.IQueryable , System.Collections.Generic.IEnumerable )' ne peuvent pas être déduits de l'utilisation. Essayez de spécifier explicitement les arguments de type. – lowlyintern

+0

Peut-être que les types sont incompatibles. Essayez de transformer le '0' en n'importe quel type' dept.QuantitySold'. –

+0

malheureusement, cela ne fonctionne pas non plus. – lowlyintern

Questions connexes