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與單工作的任何供應商。

相關問題