Использование Microsoft Data Entity Framework с Microsoft MVC на Mono 2.4 - PullRequest
5 голосов
/ 01 сентября 2009

Я использую Mono 2.4 на веб-хостинге Ubiquity.

Я создал простое учебное приложение MVC, связал здесь и убедился, что он работает с использованием всех инструментов Microsoft.

Затем приложение было обновлено, чтобы указывать на базу данных сервера MySQL, запущенную на моем хосте Ubiquity. Приложение отлично работает на компьютере под управлением Microsoft.

Теперь я пытаюсь развернуть приложение на моно-сервере в Ubiquity.

Я установил System.Web.MVC, чтобы он получал CopyLocal = true.

Я развернул приложение на моно-сервере.


Я получаю эту ошибку:

Описание: Ошибка разбора ресурса, необходимого для обслуживания этого запроса. Просмотрите исходный файл и измените его, чтобы исправить эту ошибку.

Сообщение об ошибке синтаксического анализатора: сборка System.Data.Entity, версия = 3.5.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 не найдена Информация о версии: Mono версия: 2.0.50727.1433; ASP.NET версия: 2.0.50727.1433


Я предполагаю, что проблема может быть ...

A) Платформа Entity не поддерживается в моно. Мне нужно использовать что-то кроме Microsoft Data Entity Framework.

B) Маркер открытого ключа для моно версии System.Data.Entity не является "b77a5c561934e089".

C) Что-то еще происходит.


Я попытался установить CopyLocal = true для dll System.Entity.Data. Таким образом, версия DLL от Microsoft развернута на моем моно-сервере. У меня есть сомнения, что это законно. Во всяком случае, это привело только к следующей ошибке:

Получил SIGSEGV при выполнении нативного кода. Это обычно указывает фатальная ошибка в моно среде выполнения или в одной из нативных библиотек используется вашим приложением.


Вопрос

Может кто-нибудь подтвердить, что возможно использовать Microsoft Entity Framework на Mono? Я, вероятно, собираюсь перейти от Microsoft Entity Framework, согласно этому комментарию в учебном руководстве по Microsoft MVC, связанному выше ..

"Платформа ASP.NET MVC не привязана к Microsoft Entity Framework. Вы можете создавать> классы модели базы данных, используя различные инструменты Object Relational Mapping> (OR / M), включая LINQ to SQL, Subsonic и NHibernate. "

Однако, для согласованности, я хотел бы использовать Microsoft Entity Framework на моно, если это возможно.

Ответы [ 3 ]

8 голосов
/ 01 октября 2010

Я могу подтвердить, что EntityFramework , Microsoft Chart Controls и Microsoft Sync Framework НЕ работают на моно в Linux, несмотря на разные заявления Microsoft и / или MS-сотрудников.

Это связано с тем, что Sync Framwork использует pinvoke с компонентом взаимодействия COM, элементы управления Microsoft Chart имеют проблемы DirectorySeparator, а пространство имен EntityFramwork пока не перенесено в моно.
Обратите внимание, что когда Microsoft говорит «работает с моно», это означает «с моно в Windows ».

Предполагается, что для порта EntityFramwork понадобится как минимум 1 год, пока он не достигнет стадии альфа / бета, то есть если кто-то решит это сделать.

Но нет никаких официальных планов по переносу EntityFramework.

EntityFramwork может работать / с в моно версии Windows, если для localcopy установлено значение true.

Советую вместо этого использовать nhibernate.

Обновление:

Начиная с Mono 2.11.3, Microsoft имеет EntityFramework с открытым исходным кодом.
Следовательно, теперь это часть распределения Mono.
Эта версия содержит 349 коммитов и около 514 изменений файла.
Включает 15553 вставки и 3717 удалений.

Два внизу, один уйти.
Я думаю, это означает:

ОГРОМНОЕ СПАСИБО MICROSOFT, ЭТО ТЕРРИФИК! ! !

3 голосов
/ 01 сентября 2009

Вы также должны установить CopyLocal = true для сборки System.Data.Entity. Вы отметили, что скопировали System.Web.MVC локально, но никогда не упоминали, что скопировали System.Data.Entity локально. Вам также может потребоваться скопировать локально любую из сборок, от которых зависит System.Data.Entity, которые не являются частью Mono.

2 голосов
/ 16 октября 2009

Похоже, в настоящее время в Mono нет поддержки EDF, но кто-то работает над этим .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...