C# 如何使用SQLite net为SQLite中的列设置默认值?
我正在将Android代码导入windows rt,我需要数据在两个应用程序上兼容。 在创建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 {
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代码是不可行的,因为我不能确定安装了我的应用程序的每个用户都会更新它。无法将字段添加到现有表中-未指定默认值