接口创建
接口一般在Services文件夹内,接口一般以大写字母 I 开头
例子:创建一个插入存储的接口
1、添加一个接口
public后面跟随interface
2、写一个添加数据的函数,并创建数据库
//初始化数据库
Task InitializeAsync();
//Task是一个异步操作,一般异步操作函数名以Async结尾
//Test表示把test数据插入到Test数据库中
Task InsertAsync(Test test);
3、创建接口实现类。
光标选中该接口,点击左侧小灯泡,选择“创建派生类型”
光标选中新生成的类,点击左侧小灯泡,选择“移到单独的文件内”
在新的类文件内光标选中新生成的类,点击左侧小灯泡,选择“实现缺失的成员”
4、定义一个数据库名称
//const的意思是常量
public const string DbName = "test.db";
5、获取数据库文件路径
PathHelper.GetLocalFilePath函数式调用了“获取一个可靠的文件路径的”方法
/// <summary>
/// 获取数据库文件路径
/// </summary>
public static readonly string TestDbPath = PathHelper.GetLocalFilePath(DbName);
6、创建数据库链接
//SQLiteAsyncConnection 是 SQLite-Net-PCL 库中的一个类,
//用于提供异步方式的数据库连接。
//通过这个连接,你可以在后台执行数据库操作,如查询、插入、更新和删除数据,而不会阻塞主线程。
private SQLiteAsyncConnection _connection;
7、初始化数据库连接
// 这段代码的作用是懒加载(lazy loading)_connection 字段。
// 只有在第一次访问 Connection 属性时,
// 才会创建 SQLiteAsyncConnection 实例,
// 并将其存储在 _connection 字段中。之后每次访问 Connection 时,
// 都会直接返回已经初始化过的 _connection,避免重复创建数据库连接。
private SQLiteAsyncConnection Connection =>
_connection ??= new SQLiteAsyncConnection(TestDbPath);
8、创建数据库时的操作
修改InitializeAsync函数,在创建数据库的同时根据models的内容创建数据库表
/// <summary>
/// 创建数据库时的操作
/// </summary>
public async Task InitializeAsync()
{
//该创建方法 如果表存在,则不进行操作
await Connection.CreateTableAsync<Test>();
}
9、插入数据到数据库表
/// <summary>
/// 插入数据到数据库表
/// </summary>
/// <param name="test"></param>
public async Task InsertAsync(Test test)
{
await Connection.InsertAsync(test);
}