2015-02-23 2 views
2

У меня есть данные, хранящиеся в базе данных MySQL, и я получаю доступ к ней через сущность framework 6. Что я хочу сделать, так это извлечь данные и сохранить их в независимом от сервера чтобы я мог использовать эти данные в будущем для загрузки более крупной базы данных (где данные из MySQL составляют лишь небольшую часть). Целевая база данных не будет MySQL.Хранить данные из базы данных в локальную структуру сущностей 6

Данные MySQL были там раньше, поэтому я использовал Database First. Для новой базы данных я использую Code First. Данные MySQL также нуждаются в некоторых очистках, что делается в коде. Таким образом, рабочий процесс:

  1. Считывает данные из MySQL с Entity Framework базы данных первого
  2. Оптимизировать/улучшить/исправить его в коде
  3. Хранить в другой с помощью кода базы данных первого

Так что мой первый мысль использовала SQLite, но, к сожалению, Code First is not supported.

Использование некоторого другого формата (т. Е. XML/DataSets/CSV) для хранения данных потребует от меня переопределения кода импорта.

Прямо сейчас я не нашел другую встроенную базу данных с поддержкой Entity Framework. Поскольку платформа Entity Framework предназначена для реляционных баз данных, я бы сказал, что Redis (или другие DOS) не будет делать трюк.

Я также думал, что если «преобразование» H2 с использованием IKVM.NET, а затем использование H2 в качестве замены SQLite будет вариантом, но существует риск того, что это может завершиться неудачно из-за некоторой внутренней зависимости, не поддерживаемой IKVM.NET.

Так я был бы рад получить ответы на следующие вопросы:

  1. бы H2 способ работы? Существует ли стабильный/рабочий ADO.NET-провайдер?
  2. Мне не сильно понравился бы формат локального хранилища (также может быть JSON и т. Д.) - есть ли что-то не-SQL, но при условии поддержки Enitity Framework?
  3. Я что-то пропустил? Есть ли способ, которого я просто не видел?

Вот некоторые вопросы, которые я наткнулся, которые имеют дело с возможностью использования Entity Framework использовать файлы:

+0

Вам действительно нужно EF для создания таблиц базы данных для вас, было бы слишком большой нагрузкой для этого? Большинство определений, вероятно, потребуют незначительных изменений от версий MySQL. И после этого вы можете использовать подход Code First. Насколько мне известно, единственное, чего не хватает в драйвере SQLite, это создание таблиц базы данных на основе кода. –

+0

Да и нет. Я ищу решение «наименьшей работы». Если я самостоятельно создаю заявления для создания, у меня есть дополнительная работа. В настоящее время я проверяю «экспорт из DB в XML и заполнение целевого контекста вручную». Это также дополнительная работа, но дает мне преимущество: файлы XML могут быть легко изменены (например, исправление опечаток). – munro

ответ

0

Там не полное решение, но есть много готовых частей:

Этот проект оборачивает скомпилированные Jar Н2 после IKVM.Net с классами, которые реализуют интерфейс ADO.Net для обеспечения легкого использования в ,Чистые проекты:
https://code.google.com/p/h2sharp/

поставщик EF для SharpHSQL (который не работает, потому что, SharpHSQL слишком стар, это порт Hypersonic 1.4):
https://github.com/ArsenShnurkov/SharpHSQL/tree/master/src/SharpHsql.Linq

здесь описание сборки процесс:
https://groups.google.com/forum/#!topic/h2-database/QAvFqbyd4_0
https://code.google.com/p/h2sharp/wiki/BuildingH2Sharp

Авторы вышеупомянутого кода проделали огромную работу по написанию такого огромного количества, поэтому я думаю, что нет ничего плохого в написании еще чего-нибудь, чтобы закончить вашу задачу.

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