【问题标题】:Conversion Linq result to object type in vb.net在 vb.net 中将 Linq 结果转换为对象类型
【发布时间】:2013-07-24 08:10:36
【问题描述】:

我需要以下答案的 vb.net 语法(在 c# 中给出)-

How can I convert Linq results to DTO class object without iteration

我已尝试在this link 转换为 vb.net,但它确实给出了编译错误。

以下是上述转换器的输出 -

Public Function [Get]() As List(Of User)
Using db = New MyContext()
    Return (From u In db.UsersOrder By u.FirstNameNew User() With { _
        Key .Id = u.pkUser, _
        Key .Username = u.Username, _
        Key .Password = u.Password, _
        Key .Active = u.Active _
    }).ToList()
End Using
End Function

【问题讨论】:

  • 您介意发布您尝试过的代码以及您的编译错误吗?
  • 现在工作正常。我正在提出我最新的语法

标签: vb.net linq


【解决方案1】:

嗯,Linq 查询显然搞砸了。由于您尝试转换的代码中没有User 类,转换器尝试使用仅用于匿名类型的Key 关键字。

所以正确的代码应该是这样的:

Public Function [Get]() As List(Of User)
    Using db = New MyContext()
        Return (From u In db.Users
                Order By u.FirstName
                Select New User() With { 
                    .Id = u.pkUser, 
                    .Username = u.Username, 
                    .Password = u.Password, 
                    .Active = u.Active 
                }).ToList()
    End Using
End Function

假设以下User 类:

Public Class User
    Public Id As Integer
    Public Username As String
    Public Password As String
    Public Active As Boolean
End Class

【讨论】:

    【解决方案2】:

    它现在工作了 - 以下是转换器中缺少的关键字。

    1. 订购
    2. 选择新建
    3. 删除了关键字键

    最终代码如下 -

    Public Function [Get]() As List(Of User)
    Using db = New MyContext()
    Return (From u In db.UsersOrder Order By u.FirstNameNew select new User() With { _
        .Id = u.pkUser, _
        .Username = u.Username, _
        .Password = u.Password, _
        .Active = u.Active _
    }).ToList()
    End Using
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多