0

在我的应用程序中,我使用的是实体框架,并使用与此类似的代码添加了一行。

DatabaseContext.Orders.Add(newOrder);
DatabaseContext.SaveChanges();

我使用 SQL Management Studio 检查了数据库,我可以看到新行在那里。这是昨天,到目前为止一切都很好。

今天我加载了我的解决方案并再次运行它并添加了另一行。在我的应用程序中,如果我执行以下

DatabaseContext.Orders.Count();

如您所料,我得到的计数是 2,但是如果我打开 SQL Management Studio 和Select allor select Top 1000,它只显示 1 行,这是我昨天创建的第一行。

这怎么可能?

我的问题与这篇文章非常相似, 为什么添加的记录没有显示在使用 SQL Server Express 的 SQL Server 管理工作室中?

但是该解决方案并不能解决我的问题。

我曾尝试关闭 Visual Studio 并重新启动它,不知道为什么,但我想为什么不这样做。

此外,为了检查实例,我在命令提示符处执行了以下行

sqllocaldb info

这又回来了MSSQLLocalDB

显然我只创建了一个实例并且它正在运行。

哦,请注意,昨天我不得不重新安装 SQLLocalDB 2016,因为由于某种原因我的实例无法启动。

编辑:只是为了添加,我删除了 SQL Management Studio 中的所有行。应用程序仍然说有 2 行

EDITE 2:我来自 app.config 的连接字符串

name="DefaultConnection" connectionString="data source=(LocalDB)\MSSQLLocalDB;Initial catalog=TestDB;Integrated Security=True" providerName="System.Data.SqlClient" 在这里输入代码

更新1: 所以我决定删除实例并通过执行以下操作重新创建它。

sqllocaldb stop MSSQLLocalDB

sqllocaldb delete MSSQLLocalDB

sqllocaldb create MSSQLLocalDB

SQL Management Studio 现在显示零数据库。然后我运行我的应用程序,它生成了数据库和表。SQL Management Studio 证实了这一点。现在我从我的应用程序中添加行,并且我还在 SQL Management Studio 中看到它们。

我想认为这个问题已经解决了,但我更愿意首先了解问题的根源是什么。

4

1 回答 1

0
  1. 检查您在 SQL Management Studio 中看到的与您在应用程序中工作的数据库和表相同的数据库和表。检查您的连接配置文件。
  2. 只是为了检查 - 在插入之前添加 DatabaseContext.Orders.Count() 。
  3. 可能是您的另一部分代码可能会将数据重写为旧状态?

我试过关闭视觉工作室并重新启动它,

没有理由这样做

于 2017-04-21T16:58:40.873 回答