Linq to SQL Cast异常

时间:2010-09-09 21:02:33

标签: vb.net linq

我正在VB.NET中开始我的第一个Linq to SQL项目(我也是新手)。 我正在尝试删除实体,但遇到InvalidCastException问题。调试器在ForEach循环中的Next语句处中断。

我的实体类名为Material。

非常感谢任何帮助。

谢谢,

        Dim materialsTable As Table(Of Material) _
                 = (New DataContext("Server=.\SQLEXPRESS; Database=Materials; Trusted_Connection=yes;") _
                    .GetTable(Of Material)())

        Dim materialsToDelete = (From x In materialsTable _
                                 Where x.MaterialName = aMaterial.MaterialName _
                                 Select x)

        If (materialsToDelete Is Nothing) Then Return
        If (materialsToDelete.Count = 0) Then Return

        For Each m As Material In materialsToDelete
            materialsTable.DeleteOnSubmit(m)
        Next

        materialsTable.Context.SubmitChanges()

1 个答案:

答案 0 :(得分:1)

确保您实际使用.ToList()

运行查询

另外,如果可以,请使用简单的DataContext。我没有看到你在任何地方实施DC。

 Dim db as new NorthwindDataContext()
 Dim materialsToDelete = (From x In db.Materials _
                             Where x.MaterialName = aMaterial.MaterialName _
                             Select x)

您实际上不需要循环删除它们。

materialsTable.DeleteAllOnSubmit(materialsToDelete)
materialsTable.Context.SubmitChanges()