EF - SaveChanges()保存2条记录

时间:2011-05-16 03:44:21

标签: asp.net-mvc azure

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

有人可以确认我下面有什么傻事吗? 存储库片段:

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) }
                        }
                        );
            });

1 个答案:

答案 0 :(得分:0)

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

我认为这个问题很可能是在javascript /客户端层引起的 - 我猜你不知何时会发生两次表单提交。

要调试此功能,请尝试:

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

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