LINQ VB.net返回单一类型的对象无效转换

时间:2010-06-29 17:19:26

标签: vb.net linq-to-sql

好的,只需要第二组眼睛看这个以确保错误不是我的LINQ代码以外的其他内容。这是函数类本身:

Public Function GetJacketByPolicyID(ByVal jacketID As Int32) As tblPolicy
   Dim db As New DEVDataContext()
   Dim j As tblPolicy = db.tblPolicies.Single(Function(p) p.policyNumber = jacketID)
   Return j
End Function

以下是在Web控件表单中调用此类函数的代码:

Dim p As tblPolicy
Dim j As New Jackets()
p = j.GetJacketByPolicyID(3000050)

由于某种原因,它标记了GetJacketByPolicyID函数中的第二行,表示指定的强制转换无效。所以我猜这是我做错了。我确定tblPolicy / tblPolicies类正常工作,因为我可以创建一个tblPolicy的新实例并手动设置一些变量并返回它,所以不是这样。我还检查了我正在获取的数据行,并且记录中没有空值,因此也不应该是它。

任何帮助都非常感激。


1 个答案:

答案 0 :(得分:0)

这似乎可以得到你想要的东西。不知道为什么要为这样的简单查询传递函数。

Public Function GetJacketByPolicyID(ByVal jacketID As Int32) As tblPolicy
 Dim _jacket as tblPolicy
 Using _db As New DEVDataContext()
  _jacket = (From _j In db.tblPolicies Where _j.policyNumber.Equals(jacketID) Select _j).Single()
 End Using
 Return _jacket
End Function