1

我正在尝试从 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. 这应该如何正确完成?

谢谢

4

1 回答 1

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;
于 2013-09-10T13:18:49.423 回答