无法理解SQL Server和Entity Framework之间的模型差异

时间:2013-08-29 22:47:32

标签: c# sql-server sql-server-2008 entity-framework visual-studio-2012

我正在使用 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 < / LI>

我想要的是什么:

  1. 首先,所有工作都在我的 VS 的观点
  2. 同时 MS VS 同步
  3. 明白:)。
  4. 背景是:

    • 上面所有程序的一台机器
    • 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=&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_NAME\SQLEXPRESS

    看到了这种差异:

    • 尝试使用图形连接助手将 VS 连接到MACHINE_NAME\SQLEXPRESS:目的只有MACHINE_NAME
    • 尝试使用连接框将 MS 连接到MACHINE_NAME,两个连接都可用

    然后按照预期,有2个不同的数据库。

    但为什么 VS 没有针对所有可能的连接?

1 个答案:

答案 0 :(得分:2)

听起来你正在连接到不同的数据库,就像你在途中的某个地方制作了原始数据库的副本,现在正在从一端使用该副本,而另一端使用原始数据库。检查两个连接的DSN是否正确。