我正在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()
答案 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()