Linq update"无法识别为刷新指定的对象"

时间:2017-07-28 12:21:55

标签: database vb.net linq linq-to-sql

所以我有一个非常简单的Update方法

  Public Sub SaveReferralFormSettings(ByVal p_clsReferralFormSettings As ReferralFormSetup)

        c_dbmlRefernet.Refresh(Linq.RefreshMode.OverwriteCurrentValues, p_clsReferralFormSettings)
        c_dbmlRefernet.SubmitChanges()

    End Sub

我在ReferralFormSettings表上设置了主键。我可以看到对象已完全填充。

但是在尝试更新数据库中的行时仍然会出错。为什么?

我已尝试从dbml文件中删除该表,然后按照此处的建议重新添加How did I wrong my DataContext? 还尝试了LINQ to SQL does not update when data has changed in database中的回复,但我不明白为什么我会收到错误或如何解决?任何帮助非常感谢ty。

还尝试添加行

c_dbmlRefernet.ReferralFormSetups.Attach(p_clsReferralFormSettings)

仍然没有快乐

2 个答案:

答案 0 :(得分:1)

在我的情况下,我收到了错误,因为我试图更新新的表记录,这是一个尚未在数据库中创建的记录。

答案 1 :(得分:0)

好的找到我的解决方案和我做错了什么。希望这份清单能够帮助其他人。

  1. 验证表上的主键是否设置在dbml文件中
  2. 确保在beiing传入对象时填充对象 更新方法。
  3. 现在确保将对象附加到 你的dbml即 c_dbmlRefernet.ReferralFormSetups.Attach(p_clsReferralFormSettings)
  4. 确保使用" KeepCurrentValues"使用在对象上传入的值更新数据库。
  5. 希望这有帮助。