comment obtenir une seule valeur en utilisant entity framework
J'ai un
table product with colums product_id
prodcut_name
category_id
another table category
category_id
category_name
et je suis peuplent ces détails sur le produit à l'aide de datagridview qui fonctionne bien
et j'ai besoin d'obtenir le nom de catégorie pour la ligne sélectionnée dans datagridview pour ce que j'ai fait comme ceci....
private void productGridview_Cellclick(object sender, DataGridViewCellEventArgs e)
{
string productname = Convert.ToString(selectedRow.Cells["productnam"].Value);
var categoryids = from cats in abc.products
where cats.product_Name.Equals(productname)
select cats.category_Id;
var catogynames = from categorytypes in abc.categories
where categorytypes.category_Name.Equals(categoryids)
select categorytypes.category_Name;
string categorynames = catogynames;
}
obtenu un
error : cannot implicitly convert type sysytem.linq.iqueryble<string> to string ...
ce que je dois faire pour obtenir l'unique nom de la catégorie pour la cellule sélectionnée dans productgridview productnam colonne
des suggestions.. pls ..
merci beaucoup....
Code Modifié:
vous avez une erreur :
not supported exception:
Unable to create a constant value of type 'System.Object'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.
OriginalL'auteur Enigma State | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Votre requête retourne un objet de requête qui se comporte comme une collection. Vous pouvez utiliser
First
,FirstOrDefault
,Single
, ouSingleOrDefault
pour récupérer le premier ou le seul élément de la requête, respectivement.a eu une erreur serait de vous pls voir mon code modifié
souhaitez-vous pls prendre un coup d'oeil à ma question....
Une meilleure solution est d'utiliser une propriété de navigation comme
select product.Category.category_name
, réduisant à une simple requête.OriginalL'auteur Dennis Traub
votre problème avec le casting est ici
catogynames
estIQueryble
. Vous pouvez faire quelque chose comme cela,Ou vous pouvez parcourir
catogynames
.P. S veuillez revoir vos noms de variable :D.
comment pouvez-vous faire quoi ?
puis-je utiliser une boucle foreach pour obtenir le seul catogynames...
eu une erreur lors de cette instruction List<string> categoriess = catogynames.ToList(); impossible de convertir implicitement le type de système.les collections.les génériques.list<char> pour le système.les collections.les génériques.list<string> voulez-vous pls prendre un coup d'oeil à celui-ci..
pensez à catogynames que de la collecte. Et bien sûr, vous pouvez parcourir à l'aide de foreach. Si vous avez besoin d'une valeur unique, vous pouvez l'obtenir sans foreach, tout en filtrant avec mot-clé where.
OriginalL'auteur Incognito