这个问题让我很生气。
我定义了几个表,CRUD存储了这些表的proc。我已使用dbml映射器将存储的proc连接到Visual Studio中的表。
除一张桌子外,一切正常。我没有为我的历史记录表点击插入存储过程。
dbml映射器中表的insert属性是:
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)
之前有没有人遇到过这个问题?
修复!见下面的答案。有人可以关闭这个吗?
答案 0 :(得分:2)
好的,这是令人难以置信的但是......应用程序已经有了一个名为history.aspx的页面。 VB默认为该页面的历史类,而不是LinQ使用的db.History类。
一旦我重命名为history.aspx,一切正常! :)
答案 1 :(得分:0)
您是否手动将sproc连接到.dbml文件中的表?如果在属性网格中选择表a,则可能会看到“插入”行为。如果它显示,使用运行时,则不会调用SPROC并且您已从使用运行时更改该设置,以手动配置它以在插入时调用SPROC。