2010-10-08 17 views
2

Je ne peux pas utiliser ToList<Tresult>() méthode d'extension. Le code que j'utilise est,Collection.ToList <TResult>() méthode d'extension soulève erreur de compilation de temps

return this.Semesters.ToList<ISemester>() 

'Semestres' dans le code ci-dessus est un EntityCollection. Ces directives à l'aide sont déjà présentes,

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

encore je ne peux pas compiler comme il continue à complainting que System.Data.Objects.DataClasses.EntityCollection<Semester> ne contient pas de définition pour « ToList » et la meilleure méthode extension de surcharge System.Linq.ParallelEnumerable.ToList<TSource>(System.Linq.ParallelQuery<TSource>) a des arguments invalides

Répondre

2

Etes-vous sûr Semester implémente ISemester? Comme un test, je l'ai fait

interface ISemester { } 
class Semester : ISemester { } 

// ... 

List<Semester> Semesters = new List<Semester>(); 
var query = Semesters.ToList<ISemester>(); 

Ce qui est bien. Cependant, changez la classe en simplement class Semester { }, et une erreur syntaxiquement similaire à celle que vous avez signalée.

+0

Oups! Oui, ma faute! Semester implémentait une interface différente. Mais l'erreur était trompeuse cependant. –

1

Absence de référence à l'ensemble System.Core? Ce serait probablement le faire ...

EDIT: Il doit y avoir quelque chose dans l'espace de noms System.Linq, ou qui aurait échoué à compiler. Je pensais que peut-être PFX faisait que le travail peu ... mais en supposant que vous utilisez .NET 4, la classe ParallelEnumerable est également dans System.Core.

Qu'est-ce qui se passe si vous tapez Enumerable. - est-ce que montrer quoi que ce soit?

+0

Sans cette référence, on pourrait penser que 'l'aide System.Linq,' mettrait en évidence comme invalide, ne serait-il? –

+0

@Anthony: Je me demandais si ParallelEnumerable était dans un autre assemblage, mais pas - du moins pas dans .NET 4. –

+0

J'ai une référence existante à System.Core dans mon projet fait référence à section.There est pas un tel espace de nom, non? –

0

vous manque

System.Data 
System.Data.DataSetExtensions 
System.Data.Entity 

dans vos références?

+0

Si l'erreur du compilateur mentionne '' EntityCollection alors il n'y a pas de problème de directive à l'aide là-bas ... –

+0

pas dans les directives à l'aide, je voulais dire dans les références du projet. – automagic