【发布时间】:2013-08-29 22:47:31
【问题描述】:
我正在使用 Visual Studio Express 2012 (VS) 和 SQLServer Express 2012 (SQLServer) 在 C# 中开发 Windows 窗体应用程序)。
在我的项目开始时,我使用 SQL Server Management Studio (MS) 然后在 VS 中进行修改:更新来自 DB 在图表视图中。
但现在出现了一些差异:
- 我的 VS 图表中存在一个表,但 MS 中没有,并且可以与 Linq 一起正常工作
- 我在 MS 中重命名了一些表和字段,针对那些在 VS 中不起作用的表和字段进行了更新,如果我更新了自己,则会出现一些错误,例如
dbo.myNewTable not exists
我想要什么:
- 首先,所有作品均以我的VS观点
- 使 MS 和 VS 同步
- 明白:)
上下文是:
- 一台机器,上面的所有程序
- SQLServer 上的一个数据库(或者我不确定 MS 是否显示我想象的事实)
- 过去有 2 个相同数据库的紧密副本(但过去很远)
解决方案:
在VS
- with:
DATABASE_NAME是我的数据库名称 - 和:
MACHINE_NAME是我自己的机器名,基本上是托管SQLServer的地方
App.conf
<connectionStrings>
<add name="DATABASE_NAME_Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=MACHINE_NAME;initial catalog=DATABASE_NAME;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
与 MS
比较- 数据库名称是
MACHINE_NAME\SQLEXPRESS
看到了这种差异:
- 尝试使用图形连接助手将VS连接到
MACHINE_NAME\SQLEXPRESS:只有MACHINE_NAME是有目的的 - 尝试使用连接盒将MS连接到
MACHINE_NAME,两个连接都可用
然后,正如假设的那样,有 2 个不同的数据库。
但为什么 VS 不针对所有可能的连接?
【问题讨论】:
-
您有更具体的问题吗?目前还不清楚你在这里问什么。 (不是我的反对票)
-
Management Studio 的 SQL 对象元数据的对象资源管理器缓存非常具有粘性。如果您在对象资源管理器之外更改 SQL 元数据,则必须手动强制刷新(即使,如果它在另一个 Management Studio 窗口中,例如查询)。要强制刷新,请右键单击对象资源管理器中位于/包含您已更改的对象上方的文件夹,然后选择“刷新”。否则,退出 Management Studio 并重新启动它。
-
@retailcoder:我可以给你更具体的东西,但是什么?
-
@RBarryYoung:已经做了很多次但没有成功。
-
如果 Linq 可以访问一个表,但 MS 即使在您重新启动后也不显示它,那么听起来您没有查看相同的数据库(这非常常见且容易做到) .
标签: c# sql-server sql-server-2008 entity-framework visual-studio-2012