C#WPF EF6 LOCALDB在访问数据库上崩溃

时间:2017-09-10 22:38:54

标签: c# wpf entity-framework localdb

我已经使用localdb mdf embeded和实体框架6部署了一个wpf简单应用程序,当我在Windows 7上测试我的应用程序时,尝试访问数据库时应用程序崩溃。

我已在此客户端计算机上安装了localdb版本2012,2014和netframework 4.7,但在查询窗口中一直崩溃。

我使用Visual Studio 2015任何人都体验过这个吗?

客户端计算机中安装的依赖项:

  1. 网络框架。 4.6.1或以上

  2. LocalDB 32BIT \ SqlLocalDB.msi或LocalDB 64BIT \ SqlLocalDB.msi

  3. 这是我的appconfig:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
      </startup>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="System.Data.SqlServerCe.4.0" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
          <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
        </providers>
      </entityFramework>
      <system.data>
        <DbProviderFactories>
          <remove invariant="System.Data.SqlServerCe.4.0" />
          <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
      </system.data>
      <connectionStrings>
        <add name="AgroTarifaEntities" connectionString="metadata=res://*/ModelAgro.csdl|res://*/ModelAgro.ssdl|res://*/ModelAgro.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\AgroTarifa.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
          providerName="System.Data.EntityClient" />
        <add name="AgroTarifa.Properties.Settings.AgroTarifaConnectionString"
          connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\AgroTarifa.mdf;Integrated Security=True"
          providerName="System.Data.SqlClient" />  
      </connectionStrings>
    </configuration>
    

2 个答案:

答案 0 :(得分:0)

这只是一种预感,但也许连接字符串被用作文字。尝试使用单引号替换&quot;的所有实例。如果有效,请告诉我 - 它可能会在我的工作中出现。

答案 1 :(得分:0)

我修复了在Windows 7客户端ssdt软件包上安装的问题,这不是最佳做法...而是针对用户的。

此处是SSDT资源页面 https://docs.microsoft.com/pt-br/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017