【问题标题】:C# WPF EF6 LOCALDB crashs on access databaseC# WPF EF6 LOCALDB 在访问数据库上崩溃
【发布时间】:2017-09-10 22:38:54
【问题描述】:

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

我已经在这台客户端机器上安装了 localdb 版本 2012、2014 和网络框架 4.7,但在查询窗口中不断崩溃。

我使用的是 Visual Studio 2015 有人体验过吗?

安装在客户端机器上的依赖:

  1. 网络框架。 4.6.1或以上

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

这里是我的应用配置:

<?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>

【问题讨论】:

  • 您应该尝试提供更多信息。是否有任何日志或错误消息?
  • Pac0 不,应用程序仅检索有关计算机环境的日志,我尝试使用 try catch 记录堆栈跟踪但它在您知道在没有 vs 环境的客户端机器上调试的工具之前崩溃?

标签: c# wpf entity-framework localdb


【解决方案1】:

这只是一种预感,但也许该连接字符串被用作文字。尝试用单引号替换所有 &amp;quot; 实例。让我知道这是否可行 - 它可能会在我的工作中出现。

【讨论】:

  • 在另一台装有 Visual Studio 2015 的计算机上运行完美,此时我不知道我缺少哪些依赖项...
【解决方案2】:

我修复了在 Windows 7 客户端 ssdt 包上安装的问题,这不是最佳实践……但已为用户修复。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2017-10-13
    • 1970-01-01
    • 2014-03-02
    • 2014-07-10
    • 1970-01-01
    • 2021-01-22
    相关资源
    最近更新 更多