J'ai la requête LINQ suivante.Erreur LINQ Colonne non valide lors de l'extraction de la valeur de colonne supplémentaire
// Query the database
IEnumerable<BestSeller> best_sellers = from bs in (db.smd_group)
where bs.COMPANY == "SMD Textiles"
where bs.DOCDATE > six_months_back
where bs.CUSREF == customer.customer_ref
group bs by bs.PRODCODE into g
orderby g.Sum(x => x.MQTY) descending
select new BestSeller()
{
product_code = g.Key.Trim(),
total_quantity = Convert.ToString(g.Sum(x => x.MQTY)),
// ERROR Occurs when the following line is removed
//product_description = g.First().prd_prddes
};
// Get the top 25 products
top25 = best_sellers.Take(25);
Comme vous pouvez le voir, j'ai commenté une ligne où sont créés mes BestSeller
objets. Je souhaite définir le product_description
dans mon objet BestSeller
. J'ai donc ajouté la ligne `ci-dessous:
product_description = g.First().prd_prddes
« prd_prddes » est le nom de la colonne qui contient notre description du produit.
Cependant, dès que j'ajouter cette ligne à ma requête, j'obtiens une erreur étrange:
Invalid column name 'PRODCODE'.
Invalid column name 'PRODCODE'.
Invalid column name 'PRODCODE'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'PRODCODE'. Invalid column name 'PRODCODE'. Invalid column name 'PRODCODE'.
Le nom de la colonne ProdCode est manifestement pas invalide, car il fonctionne très bien si je retire la ligne product_description
.
Il est très particulier ...
Comment savez-vous 'PRODCODE'" clairement n'est pas invalide "? Je ne le vois nulle part dans votre code (je vois PRODCODE2), et je suis sûr que le code ne ment pas quand il lance cette erreur ... Quel type est 'bs'? –
Oups, désolé, je voulais changer "PRODCODE2" en "PRODCODE" avant de poster. Ce n'est pas invalide, car sans la ligne product_description = g.First(). Prd_prddes', le code fonctionne et renvoie toutes les valeurs correctes. Merci – Luke