在我的应用程序中,我使用的是实体框架,并使用与此类似的代码添加了一行。
DatabaseContext.Orders.Add(newOrder);
DatabaseContext.SaveChanges();
我使用 SQL Management Studio 检查了数据库,我可以看到新行在那里。这是昨天,到目前为止一切都很好。
今天我加载了我的解决方案并再次运行它并添加了另一行。在我的应用程序中,如果我执行以下
DatabaseContext.Orders.Count();
如您所料,我得到的计数是 2,但是如果我打开 SQL Management Studio 和Select all
or 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 中看到它们。
我想认为这个问题已经解决了,但我更愿意首先了解问题的根源是什么。