【问题标题】:linq to sql to get single valuelinq to sql 获取单个值
【发布时间】:2016-01-29 03:47:56
【问题描述】:

我正在寻找一种简洁的单行方法来使用 lambda 使用 VB.NetDataTable 获取单个值

此代码有效

OPT_UDLY = (From X In DATA.OPTIONs
                    Where X.CONTRACT = CTC
                    Select X.UDLY).Single()

但我想像这样在一行中获取值(这不起作用)

OPT_UDLY = DATA.Where(function(t) t.contract.Equals(CTC)).Distinct()

有什么建议吗?

【问题讨论】:

    标签: vb.net linq linq-to-sql lambda distinct


    【解决方案1】:

    试试这个:

    OPT_UDLY = Data.OPTIONs.Where(Function(t) t.CONTRACT = CTC).Select(Function(x) x.UDLY).Single()
    
    1. 由于您在多条LINQ 行中使用Data.OPTIONs,它也应该始终用于单行。
    2. 此外,由于您只需要 UDLY 元素,因此请在单行样式中进一步使用 Select LINQ 表达式,就像您在多行中所做的那样。
    3. 最后,如果只有一个匹配项,请使用 Single 返回匹配值,就像您已经做的那样。

    【讨论】:

    • @Zeus 很高兴知道这一点! :)
    【解决方案2】:

    只需删除换行符:

    OPT_UDLY = (From X In DATA.OPTIONs Where X.CONTRACT = CTC Select X.UDLY).Single()

    它比等效的 lambda 更短且更具可读性:

    OPT_UDLY = Data.OPTIONs.Where(Function(t) t.CONTRACT = CTC).Select(Function(x) x.UDLY).Single()

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 2010-09-27
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多