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