在Mono 2.4上使用Microsoft Data Entity Framework和Microsoft MVC

asp.net-mvc entity-framework mono

我在Ubiquity網站託管服務上使用Mono 2.4。

我創建了一個簡單的MVC tutioal applciation,鏈接在這裡 ,並驗證它使用了所有Microsoft工具。

接下來,應用程序更新為指向在我的Ubiquity主機上運行的MySQL服務器數據庫。該應用程序在基於Microsoft的計算機上運行良好。

現在,我正在嘗試將應用程序部署到Ubiquity上的單聲道服務器。

我設置System.Web.MVC,因此它將CopyLocal = true。

我將應用程序部署到單聲道服務器。


我收到此錯誤:

描述:解析為此請求提供服務所需的資源時出錯。檢查您的源文件並對其進行修改以修復此錯誤。

分析器錯誤消息:Assembly System.Data.Entity,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089 not found版本信息:單聲道版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433


我猜這個問題可能是......

A)單聲道不支持實體框架。我需要使用Microsoft Data Entity Framework之外的其他東西。

B)單聲道版本的System.Data.Entity的公鑰令牌不是“b77a5c561934e089”。

C)還有其他事情發生。


我嘗試為System.Entity.Data dll設置CopyLocal = true。因此,部署到我的單聲道服務器的Microsoft版本的DLL。我懷疑這是合法的。無論如何,這只會產生以下錯誤:

執行本機代碼時獲得SIGSEGV。這通常表示單聲道運行時或應用程序使用的本機庫之一出現致命錯誤。


有人可以確認可以在Mono上使用Microsoft Entity Framework嗎?根據上面鏈接的Microsoft MVC教程中的這個評論,我可能會遷移遠離Microsoft Entity Framework。

“ASP.NET MVC框架與Microsoft Entity Framework無關。您可以通過利用各種對象關係映射>(OR / M)工具(包括LINQ to SQL,Subsonic和NHibernate)來創建>數據庫模型類。 “。

但是,為了保持一致性,我想在單聲道上使用Microsoft Entity Framework,如果可能的話。

一般承認的答案

您還應該為System.Data.Entity程序集設置CopyLocal = true。您注意到您複製了System.Web.MVC local,但從未提及您在本地複制了System.Data.Entity。您可能還需要復制System.Data.Entity所依賴的任何不屬於Mono的本地程序集。


熱門答案

儘管Microsoft和/或MS員工提出了不同的聲明,但我可以確認EntityFrameworkMicrosoft Chart Controls和Microsoft Sync Framework不適用於Linux上的mono。

這是因為Sync Framwork使用帶有COM互操作組件的pinvoke,Microsoft Chart Controls有DirectorySeparator問題,而EntityFramwork命名空間還沒有移植到單聲道。
請注意,當微軟稱“單聲道工作”時,他們的意思是“ 在Windows上使用單聲道”。

據估計,EntityFramwork端口至少需要1年,直到達到alpha / beta階段,也就是說,如果有人決定這樣做。

但是沒有官方計劃移植EntityFramework。

只要將localcopy設置為true,EntityFramwork就可以在windows版本的mono上工作。

我建議你改用nhibernate。

更新:

從Mono 2.11.3開始,Microsoft開源了EntityFramework。
因此,它現在是Mono發行版的一部分。
此版本附帶349次提交,大約514次文件更改。
它包括15553個插入和3717個刪除。

兩個下來,一個去。
我想這意味著:

非常感謝MICROSOFT,這太划槳了! ! !



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因