Как я могу использовать Linq с базой данных MySql на Mono? - PullRequest
10 голосов
/ 03 сентября 2008

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

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

Ответы [ 6 ]

6 голосов
/ 03 сентября 2008

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

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

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


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

2 голосов
/ 15 января 2009

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

2 голосов
/ 08 сентября 2008

Согласно дорожной карте Mono Я не уверен, доступен ли Linq для моно?

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

0 голосов
/ 28 июня 2009

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

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

0 голосов
/ 03 сентября 2008

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

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

0 голосов
/ 03 сентября 2008

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

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