Verwenden von Microsoft Data Entity Framework mit Microsoft MVC unter Mono 2.4

asp.net-mvc entity-framework mono

Frage

Ich verwende Mono 2.4 für den Ubiquity-Webhosting-Dienst.

Ich erstellte eine einfache MVC-Tutioal-Anwendung, die hier verlinkt wurde , und überprüfte, ob sie mit allen Microsoft-Tools funktionierte.

Als Nächstes wurde die Anwendung so aktualisiert, dass sie auf eine MySQL-Serverdatenbank verweist, die auf meinem Ubiquity-Host ausgeführt wird. Die Anwendung funktioniert hervorragend auf einem Microsoft-basierten Computer.

Jetzt versuche ich, die Anwendung auf dem Mono-Server unter Ubiquity bereitzustellen.

Ich habe System.Web.MVC so eingestellt, dass es CopyLocal = true ist.

Ich habe die Anwendung auf dem Mono-Server bereitgestellt.


Ich erhalte diesen Fehler:

Beschreibung: Fehler beim Analysieren einer für die Bearbeitung dieser Anforderung erforderlichen Ressource. Überprüfen Sie Ihre Quelldatei und ändern Sie sie, um diesen Fehler zu beheben.

Parser-Fehlermeldung: Assembly System.Data.Entity, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089 nicht gefunden Versionsinformationen: Mono Version: 2.0.50727.1433; ASP.NET-Version: 2.0.50727.1433


Ich vermute, das Problem könnte sein ...

A) Das Entity-Framework wird nicht in Mono unterstützt. Ich muss etwas anderes als das Microsoft Data Entity Framework verwenden.

B) Das Token für den öffentlichen Schlüssel für die Monoversion von System.Data.Entity ist nicht "b77a5c561934e089".

C) Es ist noch etwas anderes los.


Ich habe versucht, CopyLocal = true für die System.Entity.Data-DLL einzustellen. Somit wurde die Microsoft-Version der DLL auf meinem Mono-Server bereitgestellt. Ich bezweifle, dass dies legal ist. Das hat jedenfalls nur den folgenden Fehler erzeugt:

Beim Ausführen von nativem Code wurde ein SIGSEGV erhalten. Dies weist normalerweise auf einen schwerwiegenden Fehler in der Mono-Laufzeit oder auf eine der von Ihrer Anwendung verwendeten systemeigenen Bibliotheken hin.


Frage

Kann jemand bestätigen, dass es möglich ist, das Microsoft Entity Framework auf Mono zu verwenden? Ich werde wahrscheinlich vom Microsoft Entity Framework weg migrieren, wie in diesem Kommentar in dem oben verlinkten Microsoft MVC-Tutorial beschrieben.

Das ASP.NET MVC-Framework ist nicht an das Microsoft Entity Framework gebunden. Sie können> Ihre Datenbankmodellklassen erstellen, indem Sie eine Reihe von Object Relational Mapping> (OR / M) -Tools nutzen, einschließlich LINQ to SQL, Subsonic und NHibernate . "

Aus Gründen der Konsistenz möchte ich jedoch das Microsoft Entity Framework auf Mono verwenden, wenn dies möglich ist.

Akzeptierte Antwort

Sie sollten CopyLocal = true auch für die System.Data.Entity-Assembly festlegen. Sie haben festgestellt, dass Sie System.Web.MVC lokal kopiert haben, aber nie erwähnt haben, dass Sie System.Data.Entity lokal kopiert haben. Möglicherweise müssen Sie auch lokale Baugruppen kopieren, von denen System.Data.Entity abhängt, die nicht Bestandteil von Mono sind.


Beliebte Antwort

Ich kann bestätigen, dass EntityFramework , Microsoft Chart Controls und Microsoft Sync Framework NICHT unter Linux auf Mono laufen , obwohl die Ansprüche von Microsoft und / oder MS-Mitarbeitern unterschiedlich sind.

Das liegt daran, dass Sync Framwork Pinvoke mit einer COM-Interop-Komponente verwendet, Microsoft Chart Controls Probleme mit DirectorySeparator hat und der EntityFramwork-Namespace noch nicht auf Mono portiert wurde.
Beachten Sie, dass, wenn Microsoft sagt, dass es mit Mono funktioniert, sie "mit Mono unter Windows " bedeuten.

Es wird geschätzt, dass der EntityFramwork-Port mindestens ein Jahr dauern wird, bis er das Alpha / Beta-Stadium erreicht, das heißt, wenn sich jemand dafür entscheiden würde.

Es gibt jedoch keine offiziellen Pläne, EntityFramework zu portieren.

EntityFramwork funktioniert möglicherweise in der Windows-Version von Mono, solange Sie localcopy auf true setzen.

Ich rate Ihnen, stattdessen Nhibernate zu verwenden.

Aktualisieren:

Seit Mono 2.11.3 verfügt Microsoft über ein offenes EntityFramework.
Daher ist es jetzt ein Teil von Monos Distribution.
Diese Version beinhaltet 349 Commits mit ungefähr 514 Dateiänderungen.
Es enthält 15553 Einfügungen und 3717 Deletionen.

Zwei runter, einer zum Mitnehmen.
Ich denke, das bedeutet:

GROSS DANK MICROSOFT, DAS IST TERRIFISCH! ! !



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum