【问题标题】:Item added to DbContext twice项目添加到 DbContext 两次
【发布时间】:2015-08-17 06:31:04
【问题描述】:

我是 SP.NET MVC 的新手,所以请原谅我缺少基本的东西。

我创建了一个使用数据库 (Microsoft SQL Server) 的网站,我正在使用 Entity Framework 包来管理它。

我有一个如下的 DatabaseManager 类:

Public class DatabaseManager : DbContext 
{
    Public DbSet<Connection> Connections { get; set; }
.
.
.
}

我的应用程序侦听 syslog 连接,然后相应地更新 Connections 成员:

Db.connections.Add(new Connection(SourceIp, DestinationIp))
db.SaveChanges();

无论如何,无论看起来多么奇怪,当我向 DbContext 添加一个连接时,会添加两个连接(都相同)而不是一个。

我的问题可能是什么?

【问题讨论】:

  • 您是否调试过并查看添加第二个的时间点?
  • 我一直在尝试调试,但运气不佳。在我将条目添加到连接的函数中,看起来 db.Connections 中只有一个条目,但在我的控制器的 Index 函数中,db.connections 有两个项目。
  • 也许你调用了这个函数两次?请记住,如果您正在调试代码并保持代码执行超过两三秒,浏览器就会有重新发出请求的“坏”习惯......
  • 原来都是我的错——我只是不止一次地创建了侦听器线程,因此导致数据包被多次添加到数据库中。谢谢:)

标签: c# database asp.net-mvc-3 entity-framework-4


【解决方案1】:

如果你注册了两次事件监听器或者包含了两次注册文件(可能是JS文件),就会出现这个问题。您可以随时在 Firebug 上查看附带的事件列表。

【讨论】:

    猜你喜欢
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    相关资源
    最近更新 更多