sqlite - sqlite-net-extensions -- 创建表异步
问题描述
我的问题是我正在使用 CreateTableAsync 方法并且总是返回“0”。我研究并发现这个回报是一个错误。
我想知道我做错了什么。
班级服务表:
public class SqliteTable
{
private readonly SqliteWrapper _sqliteWrapper;
public SqliteTable()
{
_sqliteWrapper = new SqliteWrapper();
}
private async Task<bool> CheckIfExistTable<T>() where T : new()
{
var connection = _sqliteWrapper.OpenDatabase();
try
{
var result = await connection.Table<T>().CountAsync();
return result.Equals(0);
}
catch (Exception e)
{
Logs.Logs.Error($"Error get count table {typeof(T).Name}: {e.Message}");
return false;
}
}
public async void CreateTable<T>() where T : new()
{
var connection = _sqliteWrapper.OpenDatabase();
if (await CheckIfExistTable<T>())
{
Logs.Logs.Info($"This table {typeof(T).Name} was created");
return;
}
var createTableResult = await connection.CreateTableAsync<T>();
var value = createTableResult.Results.Values.FirstOrDefault();
if (value.Equals(1))
{
Logs.Logs.Info($"Create table {typeof(T).Name}");
}
else
{
throw new Exception($"Error create table {typeof(T).Name}");
}
}
}
我创建了一个类模型登录。这将是创建数据库的对象。
public class Login
{
public Login()
{
}
public Login(string user, string password)
{
User = user;
Password = password;
}
public Login(int id, string user, string password)
{
Id = id;
User = user;
Password = password;
}
[PrimaryKey, AutoIncrement, Column("login_id")]
public int Id { get; set; }
[Unique, NotNull, Column("login_user")]
public string User { get; set; }
[NotNull, Column("login_password")] public string Password { get; set; }
}
我创建类 CreateTableAsync。这将是 intanciar SqliteTable,调用方法 CreateTable 发送对象来创建数据库:
protected override void OnStart()
{
try
{
var sqliteTable = new SqliteTable();
sqliteTable.CreateTable<Login>();
}
catch (Exception e)
{
Logs.Logs.Error($"Error init application: {e.Message}");
}
}
有人能帮我吗?
解决方案
推荐阅读
- paket - 在 paket.dependencies 文件中,运算符 `==` 的含义是什么?
- postgresql - 如何将此 PostgreSQL 命令翻译成 Ansible?
- java - AWS API Gateway 请求正文作为函数的 Java POJO
- swift-playground - Audiokit 4.7 Playgrounds 未编译。错误:无法查找符号:
- python - 即使拥有所有权限,权限也被拒绝
- c++ - std::is_sorted 的奇怪行为
- sql - 如何给分组的行编号
- ansible - Ansible“已定义”无法按预期工作以设置变量
- hibernate - 如何解决 JBOSS EAP 7.2 中 JTA 事务的 hibernate.transaction.flush_before_completion 问题?
- c++ - 四嵌套 unordered_map 怪物的替代方案?