2015-10-13 1 views
0

J'ai le scénario suivant dans lequel je suis en train de chercher les détails de la base de données méthode utilisant le regroupementImpossible de convertir implicitement le type « Anonymous type # 1 [] » à « int [] »

//Gets MulitCourseIds from db of selected CourseIds 
     int[] _hasListCourseIds = (from mcd in _db.MultiCourseDetails 
           where _lstCourseIds.Contains(mcd.CourseId.Value) 
           group mcd.MultiCourseId by mcd.MultiCourseId into g 
           select new { multiCourseId = g.Key }).ToArray(); 
            ************ error is occuring here********** 

     if (_hasListCourseIds.Count > 0) 
     { 
      //Checks the count of courseIds from the db and selected courseIds 
      foreach (var _multiCourseId in _hasListCourseIds) 
      {     
       var _courseCount = _db.MultiCourseDetails          
            .Where(x => x.MultiCourseId == _multiCourseId) 
            .Count(); 
       if (_courseCount == _lstCourseIds.Count) 
       { 
        return true; 
       } 
      } 

Je reçois erreur

Impossible convertir implicitement le type 'Anonymous type # 1 []' à 'int []'

Toute suggestion pour améliorer le code est également invité ..

+0

si vous ne vous souciez pas du type, utilisez 'var' au lieu de' int [] ' – singsuyash

+0

Désolé, le mate casting est requis car je l'utilisais pour vérifier la boucle intérieure comme indiqué dans la question .. – ksg

+0

' g. Key' est déjà un 'int' non? donc le type anonyme aura aussi un 'int' – singsuyash

Répondre

2

Le problème est que vous projetez un type anonymous mais que vous l'attribuez à une baie int. Puisque vous projetez juste une propriété que vous n'avez pas besoin d'un type anonyme ici: -

int[] _hasListCourseIds = (from mcd in _db.MultiCourseDetails 
          where _lstCourseIds.Contains(mcd.CourseId.Value) 
          group mcd.MultiCourseId by mcd.MultiCourseId into g 
          select g.Key).ToArray(); 

Je suppose que MultiCourseId est int.

+0

' MultiCourseId' était 'nullable int' alors j'ai changé' int [] _hasListCourseIds' en 'int? [] _hasListCourseIds'.Il serait utile si vous pouviez poster comment exécuter le ci-dessus scénario «type anonyme» était nécessaire .. :) – ksg

+1

Yup et merci de répondre .. – ksg

+0

@ksg - Hey ne vous a pas - "Il serait utile si vous pouviez publier comment effectuer le scénario ci-dessus". Vous voulez stocker le type anonyme? –