【问题标题】:Stored Proc not executing with LINQ存储过程不使用 LINQ 执行
【发布时间】:2008-12-15 03:05:59
【问题描述】:

这个问题快把我逼疯了。

我定义了几个表,并且 CRUD 为这些表存储了过程。我已经使用 dbml 映射器将存储的过程连接到 Visual Studio 中的表。

一切正常,除了一张桌子。我的历史表没有命中插入存储过程。

dbml 映射器中表中的插入属性为:

usp_HistoryInsert (ByRef historyID As System.Int32, changeRequestID As System.Int32, statusID As System.Int32, userID As System.Int32, emailSent As System.Boolean, historyDate As System.DateTime, remarks As System.String, statusChanged As System.Boolean)

我正在尝试使用以下代码:

    ' create new history entry
    h1.ChangeRequestID = ChangeID
    h1.UserID = Session("UserID")
    h1.HistoryDate = DateTime.Now
    h1.StatusChanged = ActionID
    h1.Remarks = RichTextEditor1.Text
    h1.EmailSent = True
    h1.StatusID = ActionID

    db.Histories.InsertOnSubmit(h1)
    db.SubmitChanges()

使用分析器,我可以看到存储的过程没有被命中。我重命名了数据库中的存储过程(试图生成异常),只是为了仔细检查。

如果我尝试手动点击存储过程(如下),它工作正常!

db.usp_HistoryInsert(0, h1.ChangeRequestID, h1.StatusID, h1.UserID, h1.EmailSent, h1.HistoryDate, h1.Remarks, h1.StatusChanged)

以前有人遇到过这个问题吗?

已修复!请参阅下面的答案。有人可以关闭这个吗?

【问题讨论】:

    标签: asp.net vb.net linq


    【解决方案1】:

    好的,这太不可思议了,但是...该应用程序已经有一个名为 history.aspx 的页面。 VB 默认使用该页面的历史类,而不是 LinQ 使用的 db.History 类。

    我重命名history.aspx 后,一切正常! :)

    【讨论】:

      【解决方案2】:

      您是否手动将 sproc 连接到 .dbml 文件中的表?如果您在属性网格中选择表 a,您可能会看到插入行为。如果它说使用运行时,那么您的 SPROC 将不会被调用,并且您已从使用运行时更改该设置,以手动配置它以在插入时调用您的 SPROC。

      【讨论】:

      • 它没有说使用运行时,在插入它旁边有存储的过程调用。 :(
      猜你喜欢
      • 2013-06-21
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2013-12-06
      • 2012-04-16
      • 2018-07-03
      相关资源
      最近更新 更多