我有一个SQLite
包含以下实体的表:
[Table ("employee")]
public class Employees
{
[Column ("employee_id")]
[PrimaryKey]
public int EmployeeId { get; set; }
[Column ("username")]
public string UserName { get; set; }
[Column ("password")]
public string Password { get; set; }
[Column ("first_name")]
public string FirstName { get; set; }
[Column ("last_name")]
public string LastName { get; set; }
[Column ("is_wah_allowed")] //Newly added Column
public bool IsWAHAllowed { get; set; }
}
当应用程序启动时,我正在创建一个表。
conn.CreateTable<Employees>();
我想添加默认值设置为 0 - false 的新布尔列,SQLite
因为它将 bool 存储为 0 或 1。
我尝试了以下方法:
情况1 :
[Column ("is_wah_allowed")] //Newly added Column
输出:这在 SQLite 的 DB 浏览器中显示 Null
案例2:
[Column ("is_wah_allowed"), Default (false)] //Newly added Column
输出:这会在 conn.CreateTable(); 处引发异常;- 无法从 bool 转换为 int。
案例3:
[Column ("is_wah_allowed"), Default (value : 0)] //Newly added Column
输出:这在 SQLite 的 DB 浏览器中显示 False 值,而不是 0。当服务器返回数据时,我保存/更新它们,然后在更新的行中将它们显示为 0 或 1,因为服务器将其作为整数值处理。
我想知道 :
案例 1:为什么它显示 Null 而不是 0 默认值?
案例2:为什么会抛出异常?
案例 3:为什么它显示 False 而不是 0?
提前致谢!!