Влияет ли миграция данных с SQL Server на SQLite на коды приложений - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть проект, который я разработал, используя формы C # windows, используя SQL Server в качестве базы данных, но я хочу сделать проект автономным без какого-либо сервера базы данных. Я нашел SQLite в качестве варианта, можно ли перенести мою базу данных SQL Server на SQLite и не повлиять на мой код? И как мне это сделать?

Сначала я использовал код entityframework при подключении базы данных SQL Server

1 Ответ

1 голос
/ 08 апреля 2019

Ответ почти наверняка будет "да".В зависимости от нескольких вещей, вам, возможно, придется изменить очень мало (или не менять) код, или вам, возможно, придется изменить много.

Первое соображение - это ваш код SQL.Если вы были очень осторожны при написании ANSI-совместимого SQL и не использовали ни одного из встроенных представлений SQL Server или функций, специфичных для T-SQL, вам, возможно, вообще не придется переписывать много кода.В действительности вам, вероятно, придется хотя бы написать несколько.В частности, хотя ядро ​​SQL Server предназначено для обработки нескольких одновременных сеансов и запросов, SQLite - нет: вам нужно тщательно управлять своей программой, чтобы гарантировать, что никакие два потока не попытаются получить доступ к базе данных SQLite одновременно.

Второе соображение заключается в том, как ваше приложение вызывает базу данных.Опять же, в зависимости от вашего дизайна, вам может понадобиться переписать почти без кода, или вам может потребоваться переписать много.В моих приложениях C # я создаю интерфейс для поставщиков баз данных, который определяет общие функции (выбор, удаление, вставка и т. Д.).Затем я создаю простые классы-оболочки для разных СУБД, которые реализуют интерфейс.Когда мне нужно переключить базы данных, я просто создаю экземпляр и использую другой класс.Если у вас есть подобная настройка проекта, вам просто нужно создать новый класс для SQLite, который реализует интерфейс вашей базы данных и создать его экземпляр вместо класса SQL Server.Если вы написали много специфического кода C # для SQL Server в своей бизнес-логике, возможно, вам придется много писать.

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