我正在向Windows rt导入Android代码,我需要在两个应用上兼容数据。 在创建我的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'。我需要两个数据库是相同的= / 任何人都可以帮我这个吗?
谢谢=)
答案 0 :(得分:3)
你为什么不用:
private int _bleh = 1;
[NotNull]
public int Bleh
{
get { return _bleh; }
set { _bleh = value; }
}
然后,除非更改
,否则bleh的默认值始终为1答案 1 :(得分:2)
只要没有得到答案,我只是使用SQL语句创建了整个数据库,因此数据库不需要由我的C#代码创建。它工作正常!
答案 2 :(得分:0)
我知道已经晚了,但这也许会对像我这样的人有所帮助。
如果您的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;
}
我总是喜欢第二种方式。