1

我想在ASP.NET MVC 3项目中使用实体框架版本4.1.0.0和Mono 2.11.4的MySQL数据库。“发生类型加载异常。”使用DbContext与MySql连接器与单声道

在我的本地Windows系统上一切正常,但是当我将它发布到我的Ubuntu 12.04 LTS系统时,我收到了很多错误。

首先,我得到:

未能从程序集加载类型“System.Data.Entity.Infrastructure.DbUpdateException '的EntityFramework,版本= 4.1.0.0,文化=中性公钥= b77a5c561934e089'。

当我按F5 得到不同的错误,每一页刷新时间:

  • 未能加载从装配型“System.Data.Entity.Infrastructure.DbUpdateConcurrencyException“的EntityFramework ,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。

  • 未能从程序集加载类型 'System.Data.Entity.Infrastructure.DbCompiledModel' '的EntityFramework,版本= 4.1.0.0,文化=中性公钥= b77a5c561934e089'。

  • 未能加载类型 'System.Data.Entity.Infrastructure.ReplacementDbQueryWrapper`1 [TElement]' 从组件 '的EntityFramework,版本= 4.1.0.0,文化=中性公钥= b77a5c561934e089'。

  • 未能从程序集加载类型 'MySql.Data.VisualStudio.Editors.SqlEditor' 'MySql.VisualStudio,版本= 6.6.4.0,文化=中性公钥= c5687fc88969c44d'。

  • 未能从程序集加载类型 'MySql.Data.VisualStudio.WebConfig.WebConfigDlg' 'MySql.VisualStudio,版本= 6.6.4.0,文化=中性公钥= c5687fc88969c44d'。

  • 发生类型加载异常。

上次发生错误时,我尝试使用此代码使用的数据库:

using (var db = new DefaultContext()) 
{ 
    db.Persons.Add(new Person() { Name = "hallo", Address = "bllaaa" }); 
    db.SaveChanges(); 

    var persons = db.Persons.ToList(); 
    return View(persons); 
} 

有没有人有类似的问题和解决的呢?我不知道该怎么办。

P.S:我使用的Code First迁移

回答

0

从我的理解,Mono是捆绑实体框架,它基本上是尚未将要发布的V6的开源版本。

http://weblogs.asp.net/scottgu/archive/2012/07/19/entity-framework-and-open-source.aspx

所以它似乎不能定位到EF 4.x版,因为代码很可能已经发生了重大变化。尽管如此,如果你发现看似缺少的类型仍然存在,您可以尝试解决与程序集重定向问题(只搜索bindingRedirect)。

+0

我安装了新的实体框架5.0.0,但我有一个类似的结果。 – Herror

+0

我试图用EF6预发布,但它不使用MySQL,我认为 – Herror

0

我知道为什么这个happend。 我安装的是单FastCGI的,服务器4通过apt-get的后,我从源代码安装单。所以我安装了2个单声道版本,而旧版本则处于活动状态。 (2.10.8)

与实体框架似乎完全对我没用,因为只有新的EF6可与数据库,但还有谁的arent EF6 suppot与单工作的任何供应商。

相关问题