gpt4 book ai didi

C# WPF 与 MySql 和 EntityFramework

转载 作者:行者123 更新时间:2023-11-30 22:16:34 26 4
gpt4 key购买 nike

我正在尝试使用 WPF 作为我的前端并使用 EntityFramework/MySql 作为我的支持在 C# 中构建一个项目,但我无法让我的代码甚至与我的数据库建立连接。

我的项目结构如下:

  1. 模特
  2. 数据层框架(存储库接口(interface)、UnitOfWork 接口(interface)等)
  3. EntityFramework/MySql
  4. 服务
  5. UI(我想要我的连接字符串)

我已经安装了来自 Oracle 的 .NET 连接器,并且尝试了一堆不同的 Nuget 包,但每当我的代码尝试在 EntityFramework/MySq 层中执行任何操作时,我都会遇到异常。

目前我安装了以下 Nuget 包:

  1. Entity Framework
  2. MySql.Data
  3. MySql.Data.Entity

我的EntityFramework/MySq层的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" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity"/>
</providers>
</entityFramework>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.9.8.0" newVersion="6.9.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"></remove>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.2.0"/>
</DbProviderFactories>
</system.data>
</configuration>

而我的UI层的app.config如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="VolunteerDb" connectionString="server=localhost;user id=root;password=mypass;database=mydb" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.9.8.0" newVersion="6.9.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

当我尝试运行和访问存储库中的数据库时,出现以下异常:

Additional information: Could not load file or assembly 'MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference

我需要做什么才能让 EntityFramework 与 MySql 一起工作?如有任何帮助,我们将不胜感激!

编辑

这是 packages.config 的样子:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net45" />
<package id="Google.ProtocolBuffers" version="2.4.1.555" targetFramework="net45" />
<package id="MySql.Data" version="7.0.2-DMR" targetFramework="net45" />
<package id="MySql.Data.Entity" version="7.0.2-DMR" targetFramework="net45" />
</packages>

最佳答案

看起来您可能的包/引用的 MySql 版本有误。尝试在包管理器控制台(工具 > Nuget 包管理器 > 包管理器控制台)中运行它:

 Uninstall-Package MySql.Data

Install-Package MySql.Data -version 6.9.8

PS:您可能需要运行 Uninstall-Package MySql -force

关于C# WPF 与 MySql 和 EntityFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com