Automapper的泛型 - 返回单个记录

时间:2014-07-01 09:39:13

标签: .net vb.net generics mapping

我有一些像这样的代码:

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

在上面的代码中,错误是:我不能用作表达式。上面的代码返回一个填充了数据的对象。

1 个答案:

答案 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