2010-10-08 72 views
2

我不能使用ToList<Tresult>()扩展方法。我使用的代码是Collection.ToList <TResult>()扩展方法引发编译时错误

return this.Semesters.ToList<ISemester>() 

上述代码中的'上学期'是一个EntityCollection。 这些使用指令已经存在,

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

我仍然不能编译,因为它不断complainting是 System.Data.Objects.DataClasses.EntityCollection<Semester>不包含“ToList”和最佳推广方法重载System.Linq.ParallelEnumerable.ToList<TSource>(System.Linq.ParallelQuery<TSource>)的定义有一些无效参数

回答

2

你确定学期实施ISemester吗?作为一项测试,我做到了这一点

interface ISemester { } 
class Semester : ISemester { } 

// ... 

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

这是好的。但是,将类更改为class Semester { },并且在语法上与您报告的表面相似。

+0

糟糕!是的,我的错!学期实施了不同的界面。但是,这个错误是误导性的。 – 2010-10-08 18:28:59

1

缺少对System.Core装配的参考?这可能会做到这一点......

编辑:必须有东西System.Linq名称空间,或将无法编译。我认为也许PFX正在做这个工作......但假设你使用.NET 4,ParallelEnumerable类是System.Core

如果您输入Enumerable.会发生什么 - 是否显示任何内容?

+0

缺席该引用,你会觉得'使用System.Linq的;'将突出为无效,不是吗? – 2010-10-08 18:18:23

+0

@Anthony:我想知道ParallelEnumerable是否在一个不同的程序集中,但它不是 - 至少不是在.NET 4中。 – 2010-10-08 18:19:35

+0

我在我的项目引用部分有一个对System.Core的现有引用。没有这样的命名空间,对吗? – 2010-10-08 18:22:12

0

是否缺少

System.Data 
System.Data.DataSetExtensions 
System.Data.Entity 
在引用

+0

如果编译器错误提到'EntityCollection '那么就没有使用指令问题...... – 2010-10-08 18:21:25

+0

不在使用指令中,我的意思是在项目引用中。 – automagic 2010-10-08 18:53:11