C# 无法理解SQLServer和实体框架之间的模型差异

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中不起作用的表和字段进行了更新,如果我自己进行

我正在用Visual Studio Express 2012(VS)和SQLServer Express 2012(SQLServer)用C语言开发Windows窗体应用程序

在我的项目开始时,我经常使用SQLServerManagementStudio(MS)进行修改,然后在VS:在图表视图中从数据库更新

但现在出现了一些差异,如:

  • 在我的VS图表中有一个表格,但在MS中没有,可以与Linq配合使用
  • 我在MS中重命名了一些表和字段,针对那些在VS中不起作用的表和字段进行了更新,如果我自己进行了更新,则会出现一些错误,如
    dbo.myNewTable not exists
我想要的是:

  • 首先,从我的的角度来看,所有这些都有效
  • 使MSVS同步
  • 理解:)
  • 背景是:

    • 一台具有上述所有程序的机器
    • SQLServer上的一个DB(或者我不确定MS是否显示我所想象的是事实)
    • 在过去,同一数据库有两个相近的副本(但在过去相当远)
    解决方案:

    VS

    • with:
      DATABASE\u NAME
      是我的数据库名
    • 而且:
      MACHINE\u 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=&quot;data source=MACHINE_NAME;initial catalog=DATABASE_NAME;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" 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的所有连接吗?