.net vb与linq到sql的接口

.net vb与linq到sql的接口,.net,linq,.net,Linq,我在铸造和接口方面有问题。下面是我正在使用的代码。错误说明了什么。我不完全明白发生了什么事。我认为如果我创建了一个实现接口的项目列表,如果我传递了另一个也实现接口的项目,那么它应该可以工作。但事实并非如此。有人能解释一下为什么没有,我应该怎么做。多谢各位 错误行有三个astrix来识别它。再次非常感谢 类型的未处理异常 发生“System.InvalidCastException” 在DAL.dll中 其他信息:无法强制转换 类型的对象 'System.Data.Linq.DataQuery1[

我在铸造和接口方面有问题。下面是我正在使用的代码。错误说明了什么。我不完全明白发生了什么事。我认为如果我创建了一个实现接口的项目列表,如果我传递了另一个也实现接口的项目,那么它应该可以工作。但事实并非如此。有人能解释一下为什么没有,我应该怎么做。多谢各位

错误行有三个astrix来识别它。再次非常感谢

类型的未处理异常 发生“System.InvalidCastException” 在DAL.dll中

其他信息:无法强制转换 类型的对象 'System.Data.Linq.DataQuery
1[BuisnessObject.Project]'
打字
'System.Collections.Generic.IEnumerable
1[BuisnessObject.IProject]'

如果向linq查询中添加
.Cast(BuisnessObjects.IProject的)
,它应该可以工作

Function GetAllProjects() As List(Of BuisnessObjects.IProject) Implements IProjectInfoRepository.GetAllProjects
        Dim returnList As New List(Of BuisnessObjects.IProject)

        returnList.AddRange((From p In DC.ProjectInfos _
                            Select New BuisnessObjects.Project() With {.ProjectID = p.projectID, .ProjectName = p.projectName}).Cast(Of BuisnessObjects.IProject))

        Return returnList
End Function
如果向linq查询中添加
.Cast(BuisnessObjects.IProject的)
,它应该可以工作

Function GetAllProjects() As List(Of BuisnessObjects.IProject) Implements IProjectInfoRepository.GetAllProjects
        Dim returnList As New List(Of BuisnessObjects.IProject)

        returnList.AddRange((From p In DC.ProjectInfos _
                            Select New BuisnessObjects.Project() With {.ProjectID = p.projectID, .ProjectName = p.projectName}).Cast(Of BuisnessObjects.IProject))

        Return returnList
End Function

看起来有点奇怪为什么我要投。你能解释一下为什么吗。也谢谢你的帮助,它似乎有点奇怪,为什么我必须投它。你能解释一下为什么吗。也谢谢你的帮助,它成功了