![]() The COMMIT occurs when the rollback journal is deleted. A copy of the unchanged database content is written into a separate rollback file, then the changes are written directly to the database file. Write-ahead loggingīy default, SQLite uses a traditional rollback journal. The following sections cover features that are important for scalability.įor more information, see SQLite Documentation on. SQLite provides a robust API with more features than are covered in this article and the sample app. If (string.IsNullOrWhiteSpace(Item.Name))Īwait DisplayAlert("Name Required", "Please enter a name for the todo item.", "OK") Īlternatively, new instances of the database access class can be created: TodoItemDatabase database Public TodoItemPage(TodoItemDatabase todoItemDatabase)Īsync void OnSaveClicked(object sender, EventArgs e) These services can then be automatically injected into class constructors, and accessed: TodoItemDatabase database For example, you can register your pages and the database access class as services on the IServiceCollection object, in MauiProgram.cs, with the AddSingleton and AddTransient methods: () The TodoItemDatabase class can be registered as a singleton that can be used throughout the app if you are using dependency injection. Public async Task DeleteItemAsync(TodoItem item) Public async Task SaveItemAsync(TodoItem item) Return await Database.Table().Where(i => i.ID = id).FirstOrDefaultAsync() return await Database.QueryAsync("SELECT * FROM WHERE = 0") Return await Database.Table().Where(t => t.Done).ToListAsync() Public async Task> GetItemsNotDoneAsync() Return await Database.Table().ToListAsync() The following example shows the data manipulation methods in the sample app: public class TodoItemDatabase The SQLite.NET library provides a simple Object Relational Map (ORM) that allows you to store and retrieve objects without writing SQL statements. The TodoItemDatabase class includes methods for the four types of data manipulation: create, read, edit, and delete. Var result = await Database.CreateTableAsync() The TodoItemDatabase uses asynchronous lazy initialization to delay initialization of the database until it's first accessed, with a simple Init method that gets called by each method in the class: public class TodoItemDatabaseĭatabase = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags) The sample app defines a TodoItemDatabase class for this purpose. This class centralizes query logic and simplifies the management of database initialization, making it easier to refactor or expand data operations as the app grows. ![]() Create a database access classĪ database wrapper class abstracts the data access layer from the rest of the app. For more information about SQLiteOpenFlags, see Opening A New Database Connection on. You may need to specify different flags depending on how your database will be used.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |