2013-12-19 2 views
3

Я искал пример того, как подключиться к базе данных MySql и использовать провайдеры типа F #, но я ничего не нашел в Интернете.Тип провайдера для MySql

Может ли кто-нибудь дать мне ключ? Что - если есть - дополнительные пакеты мне нужны? Использую ли я SqlDataConnection или SqlEntityConnection.

Извините мое невежество, но я полностью потерян. Любая помощь приветствуется. Мне нравится идея поставщиков типов, и у меня есть большой опыт работы с функциональной программией, но это настройка вокруг меня.

+0

Вы видели [это] (http://msdn.microsoft.com/en-us/library/hh361033.aspx) ?? –

+0

Да, у меня есть (это первое, что появляется в Google), но речь идет о SQL Server, а не MySql, и, похоже, это не работает. Нужны ли мне дополнительные справочные пакеты, чтобы заставить его работать? – siki

ответ

5

Я не думаю, что есть провайдер типа «без коробки», который будет работать с MySQL на данный момент. Однако Ross McKinlay работает над лучшим поставщиком типов для баз данных SQL (в более общем плане). В настоящее время он работает с сервером MS SQL и SQL Lite.

Должно быть возможно написать расширение для поддержки MySQL с довольно небольшим объемом работы (но, к сожалению, оно еще не выполнено). См. his blog for details. Я уверен, что взносы приветствуются!

+0

Охота Поддержка SQLite была бы приятной, особенно для целей тестирования. Со стороны C# даже поддержка Entity Framework 6 для SQLite до сих пор разочаровывает, только NHibernate, похоже, отлично справляется с этим фронтом ... –

+0

Спасибо Томасу за то, что нашли время ответить! Это печально. Я имею в виду, что поставщики типов вышли уже 2 года назад, и это такая замечательная вещь. Я не могу поверить, как немного DB поддерживаются до этой даты. Думаю, мне просто нужно подождать или узнать еще несколько F # и помочь. – siki

+1

Я согласен с тем, что отсутствие поддержки для других баз данных является неудачным! Проблема в том, что стандартный поставщик - это всего лишь оболочка для LINQ to Entities/SQL, и поэтому она не расширяема. Новый должен сделать это проще. –

4

Я не тестировал это, но если Entity Framework works with MySql (он делает), и если F # имеет Entity Framework Type Provider (он делает), я бы ожидал, что поставщик Entity Framework Type будет работать с MySql.

Вы пробовали этот подход?

+0

Я собираюсь попробовать это, но если вы так добры, чтобы дать мне несколько указаний относительно того, как это сделать, это было бы потрясающе. Я полный noob для .Net. Я имею в виду ПОЛНОЕ. Я знаю довольно много Haskell, поэтому я думаю (читайте: надеюсь) F # не будет такой кривой обучения ... Спасибо заранее! – siki

0

Я думаю, что на самом деле у меня это получилось! Вот что я сделал:

  • Установлен MySql Connector
  • дополняли и ссылается MySql.Data & MySql.Data.Entity в моем проекте
  • Добавлено и EntityFramework 5,0 к моему проекту
  • Добавлено как MySql .Data & MySql.Data.Entity для ПКК.

Тогда я смог использовать SqlEntityConnection и получить типы!

Должен быть более простой способ сделать это. В частности, добавление материала в GAC не должно быть частью всего этого процесса. Я имею в виду, я прошу много за это работать в значительной степени «из коробки» ?!

К сожалению, я еще больше не знаком с .Net, поэтому я не смог получить все, что работает с файлом App.config. Основываясь на моих поисках здесь, похоже, что я не единственный, у кого проблемы с этим. Если у кого-нибудь есть отзывы или предложения, пожалуйста, помогите!

4

Если вы все еще заинтересованы, я недавно добавил поддержку MySQL к моему SQL type provider, помощь при тестировании была бы хорошей!

+0

Этот проект еще жив? Кажется, это всего лишь бета-этап. – mb14

+0

он очень живой, его довольно сложно вносить, хотя он движется довольно медленно, только я на контроле. В основном мне нужна помощь при тестировании на разных платформах/поставщиках базы данных и т. Д. Без этого я никогда не буду уверенно переместить его с бета-стадии. Многие люди используют его, хотя я верю. –

1

Генеральный поставщик баз данных SQL, поддерживающий запросы LINQ, схема разведка, отдельные лица и многое другое.

Поставщик в настоящее время поддерживает MS SQL Server, SQLite, PostgreSQL, Oracle, MySQL и MS Access. Все поставщики баз данных, кроме SQL Server и MS Access, потребуют сторонних объектов ADO.NET для подключения к функции . Они динамически загружаются во время выполнения, так что проект провайдера SQL не зависит от них.Вы должны поставить местоположение сборок статическим параметром «ResolutionPath».

https://fsprojects.github.io/SQLProvider/

Смежные вопросы