asp.net mvc - EF - SaveChanges() 保存 2 条记录



我有一个 ASP.NET Web应用程序托管在Azure中。有趣的是,有时应用程序会在数据库中创建两条记录。

谁能确认我在下面是否在做任何愚蠢的事情?存储库代码段:

private SomeEntity entities = new SomeEntity ();
 public void Add(SomeObject _someObject)
            {
                entities.EmployeeTimeClocks.AddObject(_someObject);
            }
 public void Save()
        {
                    entities.SaveChanges();
        }

创建代码段:

repo.Add(someObject);
repo.Save();

注意:我正在使用 SQL Azure 进行永久存储。

我有这个 JQuery 显示加载,这可能会导致此问题?

$('#ClockInOutBtn').click(function () {
                jQuery('#Loading').showLoading(
                        {
                            'afterShow': function () { setTimeout("$('form').submit();", 2000) }
                        }
                        );
            });

服务器端代码看起来不错。

我认为这个问题很可能是在javascript/客户端层引起的 - 我猜你会以某种方式收到两个表单提交。

要调试此问题,请尝试:

  • 使用 Firebug(或 IE 或 Chrome 的调试器)来检测问题。
  • 使用 Fiddler 检查通过网络从客户端发送到服务器的内容。
  • 在 MVC 中使用 Trace ASP.Net 检测控制器被调用的次数。

如果问题出在客户端,则可以使用某种检查来解决此问题,以防止重复提交 - 根据应用程序的要求,可能值得在客户端和服务器上添加此检查。

最新更新