Utilisation de Microsoft Data Entity Framework avec Microsoft MVC sur Mono 2.4

asp.net-mvc entity-framework mono

Question

J'utilise Mono 2.4 sur le service d'hébergement Web Ubiquity.

J'ai créé une application MVC simple, liée ici , et vérifié qu'elle fonctionnait avec tous les outils Microsoft.

Ensuite, l'application a été mise à jour pour pointer vers une base de données du serveur MySQL s'exécutant sur mon hôte Ubiquity. L'application fonctionne très bien sur une machine Microsoft.

Maintenant, j'essaie de déployer l'application sur le serveur mono sous Ubiquity.

J'ai mis System.Web.MVC pour qu'il soit CopyLocal = true.

J'ai déployé l'application sur le serveur mono.


Je reçois cette erreur:

Description: Erreur lors de l'analyse d'une ressource requise pour traiter cette demande. Examinez votre fichier source et modifiez-le pour corriger cette erreur.

Message d'erreur de l'analyseur: Assembly System.Data.Entity, version = 3.5.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 non trouvé Informations de version: Mono Version: 2.0.50727.1433; Version ASP.NET: 2.0.50727.1433


Je suppose que le problème pourrait être ...

A) Le framework Entity n'est pas supporté en mono. Je dois utiliser autre chose que Microsoft Data Entity Framework.

B) Le jeton de clé publique pour la version mono de System.Data.Entity n'est pas "b77a5c561934e089".

C) Il se passe autre chose.


J'ai essayé de définir CopyLocal = true pour le dll System.Entity.Data. Ainsi, la version Microsoft de la DLL déployée sur mon serveur mono. Je doute que cela soit légal. Quoi qu'il en soit, cela n'a généré que l'erreur suivante:

Vous avez un SIGSEGV lors de l'exécution du code natif. Cela indique généralement une erreur fatale dans le runtime mono ou l’une des bibliothèques natives utilisées par votre application.


Question

Quelqu'un peut-il confirmer qu'il est possible d'utiliser Microsoft Entity Framework sur Mono? Je vais probablement migrer hors de Microsoft Entity Framework, selon ce commentaire du tutoriel Microsoft MVC lié ci-dessus.

"L'infrastructure ASP.NET MVC n'est pas liée à Microsoft Entity Framework. Vous pouvez créer vos classes de modèle de base de données en tirant parti de divers outils de mappage relationnel-objet (OR / M), notamment LINQ to SQL, Subsonic et NHibernate . "

Toutefois, dans un souci de cohérence, je souhaiterais utiliser Microsoft Entity Framework en mono si cela est possible.

Réponse acceptée

Vous devez également définir CopyLocal = true pour l'assembly System.Data.Entity. Vous avez noté que vous avez copié System.Web.MVC local, mais vous n'avez jamais mentionné que vous aviez copié System.Data.Entity localement. Vous devrez peut-être également copier en local les assemblys dont dépend System.Data.Entity et qui ne font pas partie de Mono.


Réponse populaire

Je peux confirmer qu'EntityFramework , les contrôles Microsoft Chart et Microsoft Sync Framework NE fonctionnent PAS en mono sur Linux, malgré des affirmations différentes de Microsoft et / ou des employés de MS.

En effet, Sync Framwork utilise pinvoke avec un composant d'interopérabilité COM, Microsoft Chart Controls a des problèmes DirectorySeparator et l'espace de noms EntityFramwork n'est pas encore porté en mono.
Notez donc que lorsque Microsoft dit «fonctionne avec mono», ils signifient «avec mono sous Windows ».

On estime que le port EntityFramwork prendra au moins un an, jusqu'à ce qu'il atteigne le stade alpha / bêta, c'est-à-dire si quelqu'un décide de le faire.

Mais il n'y a pas de plans officiels pour porter EntityFramework.

EntityFramwork peut fonctionner sur la version Windows de mono, tant que vous définissez localcopy sur true.

Je vous conseille d'utiliser nhibernate à la place.

Mettre à jour:

À compter de Mono 2.11.3, Microsoft a ouvert EntityFramework.
Par conséquent, il fait maintenant partie de la distribution de Mono.
Cette version est livrée avec 349 commits, avec environ 514 modifications de fichiers.
Il comprend 15553 insertions et 3717 suppressions.

Deux en bas, un pour aller.
Je suppose que cela signifie:

GRAND MERCI À MICROSOFT, C’EST TERRIFIC! ! !



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow