Перемещение слоя данных приложения из Entity Framewok для использования веб-API - PullRequest
0 голосов
/ 06 апреля 2020

Сводка

У меня есть приложение, созданное с использованием WPF и EF6 (SQL Файл базы данных Server Compact 4.0).

Приложение уже развернуто на сайт клиента. Клиент хочет перенести локальную базу данных в онлайн-базу данных.

Поскольку удаленное подключение через inte rnet к моей онлайн-базе данных mysql небезопасно, я использовал PHP CRUD с открытым исходным кодом. API и развернул его на моем linux сервере.

Проблема

У меня около 30 таблиц и, следовательно, модели классов. Каждая таблица имеет более 5 методов в своем классе хранилища.

Теперь при использовании API я не могу напрямую использовать методы Entity Framework, такие как SaveChanges(), Add(), AddRange() et c ..., вместо этого я использую классы моделей для API и сериализация / десериализация объектов модели до Json и от Json.

Этот процесс требует много работы и времени для переноса всех 30 таблиц и перезаписи всех связанных с ними классов репозитория для получения и установки данных из API, принимая во внимание сложность отношений сущностей.

Вопросы

  1. Это правильный способ перехода с локальной базы данных в оперативную?

  2. Что является наиболее эффективный способ перенести приложение с существующей локальной базой данных с EF 6 в онлайн базу данных mysql?

1 Ответ

0 голосов
/ 06 апреля 2020

"Поскольку небезопасно удаленное подключение через inte rnet к моей онлайн-базе данных mysql"

Почему бы и нет? Есть способы обезопасить онлайн базу данных. Вы можете разместить базу данных в облаке и безопасно открыть порт только для диапазона IP-адресов, которые есть у текущего клиента, или настроить vpn от клиента к базе данных.

Если необходимо использовать веб-интерфейс вы можете поместить свой ef-слой под webapi и предоставить клиенту конечные точки webapi для ваших грубых методов. Когда вы вызываете конечную точку веб-API, вы отправляете те же модели, что и сейчас, и веб-API использует ef, как в толстом клиенте. Вы все еще должны защитить конечные точки webapi для вызывающих абонентов, которым вы доверяете.

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