LINQ查询ToString返回奇怪的字符串

时间:2013-09-10 13:17:01

标签: vb.net linq entity-framework

我正在尝试从LINQ查询找到的第一条记录的一个字段中获取字符串,如下所示:

Dim NameString As String = (From q In DContext.VoxContext.BurnPrograms
                            Where q.Id = acProgramId AndAlso q.Ac = True
                            Select q.ProgramName
                            Take 1).ToString

但是当我跟着这个:

If NameString = SomeOtherString

NameString总是:

  

System.Data.Objects.ObjectQuery`1 [System.String]

我已经尝试了几种不同的查询排列,但似乎无法让它工作。似乎ToString实际上并没有让查询运行。该如何正确完成?

由于

1 个答案:

答案 0 :(得分:3)

我不熟悉VB但是应该这样做

(From q In DContext.VoxContext.BurnPrograms
                            Where q.Id = acProgramId AndAlso q.Ac = True
                            Select q.ProgramName
                            Take 1).FirstOrDefault().ToString()

或更优雅的解决方案是将lambda表达式合并到FirstOrDefault:

var someString = DContext.VoxContext.BurnPrograms.FirstOrDefault(Function(x) x.Id = acProgramId And x.Ac).ProgramName;