使用MSSQL和MySQL数据库作为实体框架6模型

时间:2015-01-24 14:29:51

标签: mysql sql-server asp.net-mvc entity-framework

我刚接触使用asp.net的MySQL,我正在尝试使用asp.net mvc 4和实体框架6来查看来自MySQL和MySQL的数据。 MSSQL数据库都是。到目前为止,MSSQL工作正常。但每当我尝试从MySQL表中查看数据时,我都会收到此错误,

Schema specified is not valid. Errors: Models.MySqlModel.ssdl(2,2) : error
0152: No Entity Framework provider found for the ADO.NET provider with
invariant name 'MySql.Data.MySqlClient'. Make sure the provider is registered
in the 'entityFramework' section of the application config file. See
http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

我为Visual Studio 1.1.4安装了 MySQL & MySQL Connector .NET 6.8.3 ,我在参考文件夹中添加了MySql.DataMySql.Data.Entity.EF5MySql.Data.Entity.EF6个程序集。这是我的 Web.Config 数据库连接代码,

<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-ABCoLtd-20150101142609;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-ABCoLtd-20150101142609.mdf" />
<add name="mytestdbEntities" connectionString="metadata=res://*/Models.SampleModel.csdl|res://*/Models.SampleModel.ssdl|res://*/Models.SampleModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DREAGLEASUS64\SQLEXPRESS;initial catalog=mytestdb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /><add name="mdsdata_demoEntities" connectionString="metadata=res://*/Models.MySqlModel.csdl|res://*/Models.MySqlModel.ssdl|res://*/Models.MySqlModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=4de570;database=mdsdata_demo&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

来自Controller的代码,用于查看MySQL表中的数据,

namespace ABCoLtd.Controllers
{
    public class HomeController : Controller
    {
        mytestdbEntities db = new mytestdbEntities();  //MSSQL Model
        mdsdata_demoEntities dsedb = new mdsdata_demoEntities();  //MySQL Model
        public ActionResult InstrumentList()
        {
           return View(dsedb.mkistats.ToList()); //The Line showing error
        }
    }
}

我在这里做错了吗?我非常需要这个帮助。请帮助我,非常感谢您的帮助。 TNX。

更新

当我在Reference Manager中看到6.8.3.0时,Properties但在6.8.4.0我看到了{{1}}。这可能是错误吗?如果是,解决方案是什么?见下图, 6.8.3.0 6.8.4.0

1 个答案:

答案 0 :(得分:0)

检查您是否安装了正确的位版本并在IIS中启用了32位应用程序。

并尝试删除其中一个引用