In the process of developing software, SQLite is usually chosen as the local database, because its configuration is relatively simple and no additional database services are required. SQLite can well support some basic features of relational database, such as standard SQL syntax, things, data tables and indexes, etc., and it takes less resources, and can also be easily used on mobile devices.

In addition, some features of Entity Framework (such as fluent API, migration, etc.) can make it very convenient for us to operate SQLite, and its development team is still continuing the iteration of the project, which can be the reason why we use EF core.

A data model changes during development and gets out of sync with the database. You can drop the database and let EF create a new one that matches the model, but this procedure results in the loss of data. The migrations feature in EF Core provides a way to incrementally update the database schema to keep it in sync with the application's data model while preserving existing data in the database.