asp.net-mvc - 对于每个循环 LINQ 插入给我无法添加已存在的实体

标签 asp.net-mvc vb.net linq-to-sql foreach

我有以下代码,在我的脑海中应该在表中创建一个新行:

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/

相关文章:

vb.net - 如何在图像上绘制矩形并将其保存在 VB.Net 中

c# - C# 中是否有类似 VB.NET 的运算符?

c# - 为什么我的 winforms 组合框显示的是对象的名称而不是我指定的显示成员?

Javascript 和 ASP MVC - 刷新图像

c# - vb.net LINQ 选择不同的列表

c# - 使用 JavaScript/jQuery 重定向到 ASP.NET MVC 中的另一个页面

c# - 还有另一种方法可以执行此查询吗? (包含 linq-to-sql 查询中的拆分字符串)

c# - 创建了重复的记录,但为什么? (linq 到 sql)

c# - 使用 Nunit 在 ASP MVC Controller 中测试异步方法

c# - 无法使用 Simple Injector 注册 Api Controller?