我有一些像这样的代码:
Public Function MakeDatareaderList(Of I As New)(ByVal objDR As DbDataReader) As List(Of I)
Dim list As List(Of I)
Mapper.CreateMap(Of DbDataReader, List(Of I))()
list = Mapper.Map(Of SqlDataReader, List(Of I))(CType(objDR, SqlDataReader))
Return list
End Function
它按预期工作,即传入一个类型,然后返回该类型的列表。我可以这样做:
Public Function MakeDatareaderFirst(Of I As New)(ByVal objDR As DbDataReader) As I
Mapper.CreateMap(Of IDataReader, IEnumerable(Of I))()
I = Mapper.Map(Of IDataReader, IEnumerable(Of typeUSN))(objDR).First()
Return I
End Function
在上面的代码中,错误是:我不能用作表达式。上面的代码返回一个填充了数据的对象。
答案 0 :(得分:0)
你还没有创建一个变量来分配mapper函数的结果吗?您正尝试将其分配给I
这不起作用:
Public Function MakeDatareaderFirst(Of I As New)(ByVal objDR As DbDataReader) As I
Dim instance as I
Mapper.CreateMap(Of IDataReader, IEnumerable(Of I))()
instance = Mapper.Map(Of IDataReader, IEnumerable(Of I))(objDR).First()
Return instance
End Function