我有以下代码,在我的脑海中应该在表中创建一个新行:
Dim fin As Boolean
Dim db2 As New ChecklistModeldbmlDataContext
For Each a In bServers
If collection("fin" & a.ServerName) = "true, false" Or collection("fin" & a.ServerName) = "true,false" Then
fin = True
Else
fin = False
End If
bLog.AMLogID = amLog.LogID
bLog.ByteCount = collection("bytes" & a.ServerName)
bLog.DurationHours = collection("hours" & a.ServerName)
bLog.DurationMinutes = collection("minutes" & a.ServerName)
bLog.DurationSeconds = collection("seconds" & a.ServerName)
bLog.IsFinished = fin
bLog.ServerID = a.ServerID
bLog.DetailsAndErrors = collection("details" & a.ServerName)
db2.BackupLogs.InsertOnSubmit(bLog)
db2.SubmitChanges()
Next
它只向表中添加一条记录,然后出现“无法添加已存在的实体”错误。
现在它应该在表中输入 4 行,但我不明白为什么上面的代码会给我这个错误。
我还尝试在 foreach 之外使用 db2.SubmitChanges() ,它只插入最后一行。
有什么想法吗?
最佳答案
您没有在循环中创建新的博客。在每次迭代中,您只需修改单个记录的数据。
在 ForEach 循环中向 bLog 分配数据之前,尝试使用 new
关键字创建 bLog 的新实例
关于asp.net-mvc - 对于每个循环 LINQ 插入给我无法添加已存在的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423966/