【问题标题】:Convert a string to be readable as a linq object将字符串转换为可读的 linq 对象
【发布时间】:2014-04-25 20:20:16
【问题描述】:

这是一项学校作业,我正努力保持尽可能灵活,以便我以后可以参考它。

我正在尝试编写一个使用组合框将字符串传递给 Linq 查询的程序。

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

    ContractDataGridView.DataSource = Nothing

    Dim currValue As Linq.Contract = "aContract." & ComboBox1.Text 'error is here with the literal and returned value
    'Value of type 'String' cannot be converted to 'Linq.Contract'.
    Dim db As New myDatabaseDataContext
    Dim query = From aContract In db.Contracts
                Select currValue
                Order By aContract.ContractAmt


    ContractDataGridView.DataSource = query    
End Sub

我知道如何暴力破解它。如果可能的话,我宁愿有一些更灵活的东西。

【问题讨论】:

  • 什么是Linq.Contract?我的 IDE 无法识别它,也找不到任何文档。 :-/
  • 我的原始代码是 Dim currValue As String = "aContract." & ComboBox1.Text 和 Order By currValue 查询在没有 Order By 执行的情况下运行
  • 好的,很好。那没有回答我的问题。我认为您的代码 sn-p 不应该有意义吗?你能试着澄清一下你想要做什么吗?
  • 我正在尝试使用查询填充数据网格。我想使用一个字符串作为该查询的一部分。 Linq.Contract 试图将该字符串格式化为查询将读取的内容。

标签: .net vb.net linq


【解决方案1】:

您是否尝试使用字符串“aContract”。 & ComboBox1.Text' 作为列的名称以Order By?如果是这样,您正在尝试创建一个复杂的动态 Linq 查询(而且,我猜,这与您尝试投入的努力程度不同)。查看 http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx 了解支持此类操作的整个库。

尝试并解释更多您尝试使用“aContract”的内容会有所帮助。 & ComboBox1.Text' 值来完成。

【讨论】:

  • 是的!我想动态地将列命名为 Order By。我不知道为什么我不能更好地表述。 Select 应该是 currValue 而不是 aContract。我会进行编辑。是的,这可能比我通常想要为这个项目投资的更多努力。我觉得知道如何创建动态 linq 查询将来可能会派上用场。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2019-05-12
  • 2014-01-14
  • 2011-08-02
  • 2016-06-10
相关资源
最近更新 更多