C# 无法理解SQLServer和实体框架之间的模型差异
我正在用Visual Studio Express 2012(VS)和SQLServer Express 2012(SQLServer)用C语言开发Windows窗体应用程序 在我的项目开始时,我经常使用SQLServerManagementStudio(MS)进行修改,然后在VS:在图表视图中从数据库更新 但现在出现了一些差异,如:C# 无法理解SQLServer和实体框架之间的模型差异,c#,sql-server,sql-server-2008,entity-framework,visual-studio-2012,C#,Sql Server,Sql Server 2008,Entity Framework,Visual Studio 2012,我正在用Visual Studio Express 2012(VS)和SQLServer Express 2012(SQLServer)用C语言开发Windows窗体应用程序 在我的项目开始时,我经常使用SQLServerManagementStudio(MS)进行修改,然后在VS:在图表视图中从数据库更新 但现在出现了一些差异,如: 在我的VS图表中有一个表格,但在MS中没有,可以与Linq配合使用 我在MS中重命名了一些表和字段,针对那些在VS中不起作用的表和字段进行了更新,如果我自己进行
- 在我的VS图表中有一个表格,但在MS中没有,可以与Linq配合使用
- 我在MS中重命名了一些表和字段,针对那些在VS中不起作用的表和字段进行了更新,如果我自己进行了更新,则会出现一些错误,如
dbo.myNewTable not exists
- 一台具有上述所有程序的机器
- SQLServer上的一个DB(或者我不确定MS是否显示我所想象的是事实)
- 在过去,同一数据库有两个相近的副本(但在过去相当远)
- with:
是我的数据库名DATABASE\u NAME
- 而且:
是我自己的机器名,基本上是托管SQLServer的地方MACHINE\u NAME
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\u name\SQLEXPRESS
- 尝试使用图形连接助手将VS连接到
:仅使用MACHINE\u NAME\SQLEXPRESS
MACHINE\u NAME
- 尝试使用连接框将MS连接到
,两种连接都可用MACHINE\u NAME
但是为什么VS不能使用所有可能的连接?听起来像是连接到不同的数据库,就像是在某个地方复制了原始数据库,现在从一端使用该副本,但从另一端使用原始数据库。检查两个连接的
DSN
s以确保。您有更具体的问题吗?不太清楚你在问什么。(不是我的反对票)ManagementStudio的SQL对象元数据的对象资源管理器缓存非常粘稠。如果在对象资源管理器之外更改SQL元数据,则必须手动强制刷新(即使它位于另一个Management Studio窗口中,如查询)。要强制刷新,请右键单击对象资源管理器中位于/包含已更改对象的文件夹,然后选择“刷新”。否则,请退出Management Studio并重新启动它。@retailcoder:我可以给您提供更多详细信息,但是什么?@rbaryYoung:已经做了很多次,但都没有成功。如果Linq可以访问一个表,但MS即使在您重新启动后也没有显示它,那么听起来您好像没有查看相同的数据库(这非常常见,而且很容易做到).是的,听起来我连接了两个不同的分贝。但是,我也只能看到一台服务器,这是我自己开发的计算机。不管怎样,我喜欢有两份拷贝的想法。所以,看起来不是。问题框中的错误。您知道为什么VisualStudio不使用到SQLServer的所有连接吗?