Entity framework 4 实体框架4 SaveChanges方法未保存到数据库

Entity framework 4 实体框架4 SaveChanges方法未保存到数据库,entity-framework-4,savechanges,Entity Framework 4,Savechanges,我正在尝试将EntityFramework4用于一个小型数据库应用程序,我正在编写这个应用程序来记录下载的文件。在运行应用程序时,我在tableName.Add()方法之后,在.SaveChanges()方法之前设置了一个断点,我可以看到保存到实体中的数据;在调用.SaveChanges()方法之后,我有了另一个断点,并查看数据库,发现没有保存任何记录。我发现了很多类似的问题,但我还没有找到解决我这个问题的方法。代码如下: public void StartNewDownload(str

我正在尝试将EntityFramework4用于一个小型数据库应用程序,我正在编写这个应用程序来记录下载的文件。在运行应用程序时,我在tableName.Add()方法之后,在.SaveChanges()方法之前设置了一个断点,我可以看到保存到实体中的数据;在调用.SaveChanges()方法之后,我有了另一个断点,并查看数据库,发现没有保存任何记录。我发现了很多类似的问题,但我还没有找到解决我这个问题的方法。代码如下:

    public void StartNewDownload(string FileID)
    {
        DateTime startTime = DateTime.Now;

        FilesDBEntities db = new FilesDBEntities();
        int startedID = (from dr in db.tblDownloadResults
                         where dr.Value.Equals("Started")
                         select dr.ResultID).First();
        tblDownloads myDownload = new tblDownloads { FileID = FileID, StartDateTime = startTime, ResultID = startedID };
        db.tblDownloads.Add(myDownload);
        db.SaveChanges();
    }
感谢您的帮助

谢谢

您可以使用查看实体框架是否真正调用了数据库


(该工具不包含在SQL Server Express中)

Pawel,你指引了我正确的方向。实体有数据,但我正在查找的数据库没有。但在阅读了您的评论之后,我从VisualStudio运行了该程序,并使用Process Monitor监视对*.sdf文件的任何操作。这有助于发现,在构建解决方案时,它会在bin\Debug文件夹中创建另一个数据库文件。我忘了数据库构建操作属性设置为“内容”


谢谢

你如何“查看数据库”?您是否尝试读取应用程序中的实体?它起作用了吗?我见过很多这样的情况,人们在使用CodeFirst时看到了一个错误的数据库,因为他们改变了一些东西,CodeFirst创建了一个新的数据库,在那里保存了数据。如果你能读到你在应用程序中保存的内容,这意味着数据保存在某个地方。Pawel,谢谢你的回复。我认为这是一个潜在的原因。我们将对此进行调查并报告。谢谢。您总是可以使用
((IObjectContext)ctx.ObjectContext).connection.ConnectionString
来获取连接字符串,它将告诉您正在访问哪个数据库。@Pawel what the HELLL。我还在visual studio中查看错误的db。它将其保存在/bin目录中,而连接字符串是/AppData文件夹中的db&我正在检查它。Edi,感谢您的回复,很抱歉没有包含其他信息。我使用的是SQLCompact而不是SQLExpress。SQL事件探查器在这种情况下仍然有用吗?