【发布时间】:2016-06-28 22:14:32
【问题描述】:
我正在尝试使用 WPF 作为我的前端和 EntityFramework/MySql 作为我的支持在 C# 中构建一个项目,但我什至无法让我的代码连接到我的数据库。
我的项目结构如下:
- 型号
- 数据层框架(存储库接口、UnitOfWork 接口等)
- EntityFramework/MySql
- 服务
- UI(我想要我的连接字符串)
我已经从 Oracle 安装了 .NET 连接器,并且我尝试了一堆不同的 Nuget 包,但是每当我的代码尝试在 EntityFramework/MySq 层中执行任何操作时,我都会遇到异常。
目前我安装了以下 Nuget 包:
- 实体框架
- MySql.Data
- 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>
当我尝试在我的存储库中运行和访问数据库时,出现以下异常:
附加信息:无法加载文件或程序集'MySql.Data, 版本=6.9.8.0,文化=中性,PublicKeyToken=c5687fc88969c44d' 或 它的依赖项之一。定位程序集的清单定义 与程序集引用不匹配
我需要做什么才能让 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>
【问题讨论】:
-
您能在问题中包含您的 packages.config 吗?
标签: c# mysql .net entity-framework