Vb.net 发生无效的强制转换异常

Vb.net 发生无效的强制转换异常,vb.net,linq,visual-studio-2012,Vb.net,Linq,Visual Studio 2012,我得到以下错误: 发生无效的强制转换异常 无法强制转换类型为“System.Data.Linq.DataQuery”1[WindowsApplication1.DesignSpec]的对象 键入“WindowsApplication1.DesignSpec” 关于以下测试代码: Dim prodSku As String = "11037" Dim designSpec As DesignSpec = From row In dbLocal.DesignSpecs Where row.Name

我得到以下错误:

发生无效的强制转换异常 无法强制转换类型为“System.Data.Linq.DataQuery”1[WindowsApplication1.DesignSpec]的对象 键入“WindowsApplication1.DesignSpec”

关于以下测试代码:

Dim prodSku As String = "11037"
Dim designSpec As DesignSpec = From row In dbLocal.DesignSpecs Where row.Name = prodSku Select row
我到处寻找,尝试了很多选择,但显然不是正确的选择。如果您能帮助我使用正确的语法,我们将不胜感激

向您致以亲切的问候,并提前感谢您的帮助


附言:我知道这听起来有点俗气,但这是我的第一篇帖子(希望我已经充分发布了)。我已经遵循了许多非常有用的线索,但我不能放弃任何投票,因为我没有信誉点——真的!如果这是一个足够好的问题,也许每个人都会投票给我,给我足够的声望点数,这样我就可以回报其他人的帮助。再次感谢

Linq查询将返回一个集合(属于
DesignSpec
),而您正试图将其分配给单个实例

您需要对提取单个实例的集合应用筛选器—例如,
single()
SingleOrDefault()
First()
FirstOrDefault()
,等等,这取决于基于查询的预期输出最有意义的内容


请记住,如果查询恰好返回多个实例,则使用
单个
变量将导致异常,而
第一个
变量将处理此ok,因为它们只返回找到的第一个实例。

Linq查询将返回一个集合(属于
设计规范
),而您正试图将其分配给单个实例

您需要对提取单个实例的集合应用筛选器—例如,
single()
SingleOrDefault()
First()
FirstOrDefault()
,等等,这取决于基于查询的预期输出最有意义的内容


请记住,如果查询恰好返回多个实例,则使用
单个
变量将导致异常,而
第一个
变量将处理此确定,因为它们只返回找到的第一个实例。

您尚未实际执行查询。描述了如何执行查询

要实际执行查询,请使用:

  • FirstOrDefault()
    返回第一个匹配元素或null
  • SingleOrDefault()
    返回匹配元素或null(这将检查是否只有一个匹配元素)。如果有多个匹配元素,将引发异常
  • First()
  • Single()

您尚未实际执行查询。描述了如何执行查询

要实际执行查询,请使用:

  • FirstOrDefault()
    返回第一个匹配元素或null
  • SingleOrDefault()
    返回匹配元素或null(这将检查是否只有一个匹配元素)。如果有多个匹配元素,将引发异常
  • First()
  • Single()

谢谢!!谢谢你的及时回复!这非常有效:Dim prodSku As String=“11037”Dim designSpec As designSpec=(来自dbLocal.DesignSpecs中的行,其中row.Name=prodSku选择行)。SingleOrDefault我无法投票支持您的答案,但非常感谢!非常感谢。谢谢你的及时回复!这非常有效:Dim prodSku As String=“11037”Dim designSpec As designSpec=(来自dbLocal.DesignSpecs中的行,其中row.Name=prodSku选择行)。SingleOrDefault我无法投票支持您的答案,但非常感谢!