Как я могу использовать Linq с базой данных MySql в Mono?

Существует множество библиотек, предоставляющих возможности Linq для кода С#, взаимодействующего с базой данных MySql. Какой из них наиболее устойчив и применим к Mono?

Фон (в основном нерелевантный): у меня есть простая версия обновления программы С# (.Net 2.0) в базе данных MySql. Он выполняется ночью через работу cron и работает на Pentium 3 450Mhz, Linux + Mono. Я хочу переписать его с помощью Linq (.Net 3.5) в основном как упражнение (я еще не использовал Linq).

Ответ 1

Единственным (бесплатным) провайдером linq для MySql является DbLinq, и я считаю, что это далеко от готового производства.

Существует также MyDirect.Net, который является коммерческим, но я слышал неоднозначные отзывы о его возможностях.

Я читал, что MySql будет реализовывать API Linq to Entities для версии 5.3.net-коннектора 5.3, но я не знаю, есть ли там график времени. Фактически, MySql полностью молчал о поддержке Entity Framework в течение нескольких месяцев.


Приложение: Последняя версия MySql Connector/Net 6.0 поддерживает EF в соответствии с примечаниями к выпуску. Я понятия не имею, насколько это стабильно/полезно, поэтому я хотел бы услышать от любого, кто его пробовал.

Ответ 2

В соответствии с Моно дорожная карта Я не уверен, что Linq доступен для моно?

По крайней мере, некоторые из Linq могут быть доступны в самой последней версии, но Linq to DB указан для Mono 2.4 (февраль 2009 г.)

Ответ 3

Не уверен в Mono, но я только начал использовать LightSpeed и поддерживает LINQ-to-MySQL.

Ответ 4

в это время вы не можете использовать linq для sql, вы можете посмотреть на сторонний поставщик linq mysql или linq для сущностей. linq to sql работает только для баз данных SQL Server.

Ответ 5

LINQ to SQL - это просто уровень ORM, который использует силу выражений, чтобы упростить создание запросов в вашем коде.

Если вы просто вызываете adhoc-запросы для своего инструмента, мало нужно использовать LINQ, он просто добавляет дополнительный уровень абстракции в ваш код.

Ответ 6

Я пробовал учебник в http://www.primaryobjects.com/CMS/Article100.aspx. Это использует dblinq/dbmetal для генерации класса и классов контекста данных для каждой таблицы.

Код с ошибкой при первой попытке с необработанным исключением (MySql.Data.Types.MySqlConversionException: Невозможно преобразовать значение даты и времени MySQL в System.DateTime "). Googling показал, что это должно быть легко решено путем добавления" Разрешить ноль "Datetime = True;" в строку подключения. Неудивительно, что это не решило мою проблему. Думаю, что MySQL.Net Connector был виноват, я выполнил SQL, сгенерированный dblinq, без промежуточного уровня linq2sql, используя MySQL Connector. На этот раз никаких исключений не произошло. Таблицы, которые не имеют столбца даты, работали с DbLinq. Итак, из моего эксперимента я согласен с Адамом, DbLinq - далеко от готовой продукции.