Хранение структуры данных в базе данных MySql с использованием F # - PullRequest
1 голос
/ 03 февраля 2011

Мне нужно хранить большие и сложные структуры данных в базе данных MySql (я использую F #).Прямо сейчас у меня было две идеи:

Используя только структуры (ограничения), затем создать nativeptr <_> для структуры, преобразовать в nativeptr и загрузить все в byte [], который является BLOB-объектом MySql.

Использование библиотеки отражений F # для преобразования всего в JSON и из него и сохранения в виде строки (slooow).

Есть ли лучшие способы, которые я пропустил?Какой из этих двух способов лучше?

Спасибо!

1 Ответ

1 голос
/ 03 февраля 2011

Я думаю, что хранить структуры данных F # в виде двоичных двоичных объектов или в виде текстовых данных не очень хорошая идея - если вы используете реляционную базу данных, вам следует хранить данные в таблицах с (разумными) столбцами.

Самый простой способ - использовать ADO.NET (MySQL имеет некоторых провайдеров, которые разрешают это ). Код для вызова ADO.NET из F # будет практически таким же, как код, вызывающий его из C #. См., Например, код в этом руководстве (PDF), в котором используется MySqlConnection.

Вы можете сделать чтение данных более приятным, используя ? (динамический) оператор в F #. Я написал пример, демонстрирующий это в MS SQL , но он также может быть адаптирован для работы с MySQL.

Наконец, похоже, что MySQL также имеет провайдера для Entity Framework ( см. Здесь ), поэтому вы можете использовать поддержку F # LINQ (но в текущей версии поддержка запросов EF несколько ограничена, поэтому это будет хорошо работать только в простых сценариях).

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