SQLite-net 이라는 오픈소스를 라이브러리를 알게 되었습니다.
SQLite-net은 오픈소스로 사용할 수 있는 최소 라이브러리입니다.데이터를 저장하는 NET, .NET Core 및 Mono 응용 프로그램SQLite 3 데이터베이스그것은 처음에 Xamarin과 함께 작동하도록 설계되었다.iOS,이후 모든 플랫폼(Xamarin.*, .NET, UWP, Azure 등)에서 작업할 수 있게 되었습니다.
- ORM 제공
- SQL 작성 제공
설치방법
- nuget을 통해서 각각 sqlite-net-pcl, SQLitePCLRaw.bundle_green을 설치
아래 내용은 맨 위 링크에 있는 링크에서 가져온 예제코드입니다.
테이블 생성
public class TodoItemDatabase
{
SQLiteAsyncConnection Database;
public TodoItemDatabase()
{
}
async Task Init()
{
if (Database is not null)
return;
Database = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags);
var result = await Database.CreateTableAsync<TodoItem>();
}
...
}
CRUD
public class TodoItemDatabase
{
...
public async Task<List<TodoItem>> GetItemsAsync()
{
await Init();
return await Database.Table<TodoItem>().ToListAsync();
}
public async Task<List<TodoItem>> GetItemsNotDoneAsync()
{
await Init();
return await Database.Table<TodoItem>().Where(t => t.Done).ToListAsync();
// SQL queries are also possible
//return await Database.QueryAsync<TodoItem>("SELECT * FROM [TodoItem] WHERE [Done] = 0");
}
public async Task<TodoItem> GetItemAsync(int id)
{
await Init();
return await Database.Table<TodoItem>().Where(i => i.ID == id).FirstOrDefaultAsync();
}
public async Task<int> SaveItemAsync(TodoItem item)
{
await Init();
if (item.ID != 0)
return await Database.UpdateAsync(item);
else
return await Database.InsertAsync(item);
}
public async Task<int> DeleteItemAsync(TodoItem item)
{
await Init();
return await Database.DeleteAsync(item);
}
}
그 외 자세한 내용은 github의 Readme를 통해 확인해보시면 될 것 같습니다.