SQL Server 如何在App.config中验证连接字符串?

wnrlj8wa  于 2022-11-28  发布在  其他
关注(0)|答案(1)|浏览(152)

我是Entity Framework的新手,我正在尝试设置此教程:
https://github.com/entityframeworktutorial/EF6-DBFirst-Demo
在自述文件中,它要求我首先在Visual Studio 2017中打开项目,我使用了2019,因为这是安装在我的系统上,所以希望这不是一个问题。
第二,它要求“打开MS SQL Server 2012并附加SchoolDBidodf(包含在EF 6DBFirstDemo文件夹中)”这花了我几天的时间才弄清楚,因为我安装了几个版本的MSSQL Server 2012,所以我将它们全部删除并安装了一个版本。
此外,我把所有文件的文件夹到我的桌面下我的当前用户嵌套了一点(旁边的所有其他应用程序,我正在管理).不幸的是,这样做,我不能导航到.mdf文件在MSSQL管理工作室,所以我不得不复制这个文件到一个位置,是可见的管理工作室,原来是'C:/Program Files/Microsoft SQL Server/MSSQL11.SQLEXPRESS/MSSQL/DATA',无论如何,我最终得到了数据库安装,我可以看到的表等现在.
第三步是“在Visual Studio中验证App.config中的连接字符串,并确保它指向您的本地DB服务器。”由于完全不知道这是如何完成的,我在Visual Studio中交叉手指并单击Go图标。应用程序当然会立即崩溃。
我的问题是,要使App.config文件指向我的特定本地数据库,我到底需要更改什么。下面是该文件当前的副本:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>

  <connectionStrings>
    <add name="SchoolDBEntities"
         connectionString="metadata=res://*/School.csdl|
                                    res://*/School.ssdl|
                                    res://*/School.msl;
                           provider=System.Data.SqlClient;
                           provider connection string=
                               &quot;data source=.;
                                    initial catalog=SchoolDB;
                                    integrated security=True;
                                    MultipleActiveResultSets=True;
                                    App=EntityFramework&quot;"
        providerName="System.Data.EntityClient" />
  </connectionStrings>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />

    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

</configuration>

我有一种感觉,它不工作的原因是因为代码存在于我的用户目录中,它试图到达的数据库是从C/Program files/whatever安装的,但这只是一种直觉。
有什么想法吗?

hgqdbh6s

hgqdbh6s1#

对于data source,请指定与您通过SSMS连接时使用的服务器名称相同的名称。由于您使用的是Express Edition(根据文件路径的建议),因此本地命名示例规范可能应为data source=.\SQLEXPRESS

相关问题