【问题标题】:SaveChanges() not working in productionSaveChanges() 在生产中不起作用
【发布时间】:2016-06-17 03:20:44
【问题描述】:

我在 SignalR 集线器中有这个简单的代码,在我的机器上运行代码时它工作正常。

using (var db = new dbEntities())
{
    var registry = db.myTable.Where( /* where clause */ ).FirstOrDefault();
    registry.status = "C";
    db.SaveChanges();
}     

但是当我发布网站并将其上传到服务器时,此代码不会将更改保存在数据库中。 修改数据库的其他地方工作得很好,但这个在 signalR 集线器内的地方却没有。

【问题讨论】:

  • 那么,会发生什么
  • 1 - 你的意思是registry.status = "C";(缺少y)? 2-你确定你的代码实际上被调用了吗? 3- 你确定你连接到正确的数据库吗?
  • 旁注 - 您可以将 Where 子句替换为 FirstOrDefaultvar registry = db.myTable.FirstOrDefault( /* where clause */ );
  • 关于注册表,这只是一个错字,我的实际代码没有使用这些名称。我确信代码正在被调用,因为就在这个块之后,调用了一个运行良好的客户端方法。并且数据库连接是正确的,因为代码通过相同的dbContext从那里获取信息。
  • 您是否将您的实体标记为已修改db.Entry(registry).State = System.Data.Entity.EntityState.Modified;

标签: asp.net-mvc entity-framework signalr


【解决方案1】:

您的用户可能没有权限更新您在制作框中使用的数据库。检查服务器上的应用程序事件日志是否有错误,并确保用于应用程序的用户对数据库和 IIS 服务器具有适当的权限。

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 2014-01-30
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多