InsertOnSubmit不会在SubmitChanges上触发数据库插入

时间:2009-08-17 17:41:31

标签: asp.net vb.net linq linq-to-sql insert

我遇到了奇怪的情况,我正在寻找方法来弄清楚出了什么问题。我有一段代码在表中插入一行 - 我在其他几十个应用程序中做过的事情 - 但最终结果是数据库端没有任何反应,并且没有生成错误。我怎么知道出了什么问题?

这是我的代码:

Partial Class MyDatabaseDataContext

    Public Sub CreateEnrollee(subId, depId)

        dim newEnrollee = New enrolee With {.subId = subId, .depId = depId}

        Me.enrollees.InsertOnSubmit(newEnrollee)
        Me.SubmitChanges()

        dim test = NewEnrollee.id '<-- auto-incrementing key'

    End Sub

End Class

调用SubmitChanges后,不会创建新行,“test”为零。不会生成错误。我不知道为什么它不试图插入行。关于如何调试这个的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以启用日志记录:

Me.Log = Console.Out;

您可以查看对象的ChangeSet

答案 1 :(得分:1)

发现它!我为其他一些问题做的部分调试包括为一些可扩展性方法添加一些日志记录:

Partial Private Sub InsertEnrollee(instance As Enrollee)
End Sub

我认为“InsertEnrollee”已经存在,所以我可以在插入Enrollee后执行操作,所以我在这里添加了日志代码,这就是故障开始的时候。现在我猜这是你如何覆盖Enrollee插入并自己动手,如果你愿意的话。由于我基本上覆盖了日志记录代码,这就是为什么没有发生任何事情(从数据库的角度来看)。