目前我收到错误无法将表格转换为IEnumerable
,我发现这一点非常令人困惑,因为我没有指定一个表格。
我将逐步解释正在做什么,请指出我出错的地方。
DAL:
Public Function GetCategories(ByVal DB As WholeSaleDataDataContext, Optional CategoryID? As Integer = Nothing) As IEnumerable(Of Category)
If CategoryID Is Nothing Then
Return DB.Categories.AsEnumerable()
Else
Return DB.Categories.Where(Function(Cat) Cat.CategoryID.Equals(CategoryID)).AsEnumerable
End If
End Function
WCF:
<DataContract(), KnownType(GetType(WholeSalesDAL.Category))>
Public Class Category2
End Class
Public Function GetCategory() As IEnumerable(Of Category2) Implements IWholeSaleData.GetCategory
Return WholeSalesDAL.GetCategories(_DB).AsEnumerable
End Function
网站:
Private WholeSaleServices As WholeSaleService.WholeSaleDataClient
Public Sub New()
WholeSaleServices = New WholeSaleService.WholeSaleDataClient("BasicHttpBinding_IWholeSaleData", "http://localhost:16722/WholeSaleService.svc")
GetCategories()
End Sub
Public Sub GetCategories()
Dim z = WholeSaleServices.GetCategory
End Sub
答案 0 :(得分:0)
我发现您的代码有两个问题:
编辑:#1解释了......
1)在您的WCF部分中,WholeSalesDAL.GetCategories(_DB)
为IEnumerable(Of Category)
,但您的函数应该返回`IEnumerable(Of Category2)
。我没有看到如何进行类型转换。
2)我相信你不必要地使用AsEnumerable
,这可能是导致异常的原因。你知道你是否需要在任何一个地方拨打AsEnumerable
?我会尝试删除它。