linq to sql 获取单个值

linq to sql to get single value

我正在寻找一种简洁的单行方法,使用 VB.Net

使用 lambda 从 DataTable 获取单个值

此代码有效

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()

有什么建议吗?

试试这个:

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 到 return 匹配值,就像您已经做的那样。

只需删除换行符:

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()