C# 如何使用SQLite net为SQLite中的列设置默认值?

C# 如何使用SQLite net为SQLite中的列设置默认值?,c#,sqlite,sqlite-net,C#,Sqlite,Sqlite Net,我正在将Android代码导入windows rt,我需要数据在两个应用程序上兼容。 在创建sqlite数据库时,我需要为列设置一个默认值,如 CREATE TABLE [blabla] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [bleh] INTEGER NOT NULL DEFAULT -1 ) 我用SQLite net编写了我的C#代码,如下所示: [Table("blabla")] public class Blabla {

我正在将Android代码导入windows rt,我需要数据在两个应用程序上兼容。 在创建sqlite数据库时,我需要为列设置一个默认值,如

CREATE TABLE [blabla] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [bleh] INTEGER NOT NULL DEFAULT -1 )
我用SQLite net编写了我的C#代码,如下所示:

[Table("blabla")]
public class Blabla {
    [PrimaryKey, AutoIncrement, NotNull]
    public int id { get; set; }

    [NotNull]
    public int bleh { get; set; }
}
但我无法将默认值设置为“bleh”。我需要两个数据库是相同的=/ 有人能帮我吗

谢谢=)

为什么不使用:

    private int _bleh = 1;
    [NotNull]
    public int Bleh
    {
        get { return _bleh; }
        set { _bleh = value; }
    }

然后bleh将始终具有默认值1,除非进行了更改

只要没有得到答案,我只是使用SQL语句创建了整个数据库,因此不需要使用我的C代码创建数据库。它工作正常

我知道已经很晚了,但也许这会帮助像我这样的人。 如果SQLite支持
Default
,则使用
Default
属性

[Table("blabla")]
public class Blabla {
    [PrimaryKey, AutoIncrement, NotNull]
    public int id { get; set; }

    [NotNull,Default(value:1)]
    public int bleh { get; set; }
}
如果您的SQLite不支持
Default
,您可以这样简单地分配默认值:

 [Table("blabla")]
    public class Blabla {
        [PrimaryKey, AutoIncrement, NotNull]
        public int id { get; set; }

        [NotNull]
        public int bleh { get; set; } = 1;
    }

我总是选择第二种方式。

不幸的是,windows应用程序生成的数据库仍然与我的android应用程序不兼容,该应用程序假定此列具有默认值。更改我的android代码是不可行的,因为我不能确定安装了我的应用程序的每个用户都会更新它。无法将字段添加到现有表中-未指定默认值