我正在尝试在用于像这样在SQLITE中定义表的类中设置默认值:
using System;
using SQLite;
namespace Japanese {
public class Phrase
{
[PrimaryKey, NotNull]
public string PhraseId { get; set; }
public int PhraseNum { get; set; }
public int CategoryId { get; set; }
[NotNull]
public bool Selected { get; set; }
[NotNull, Default(value: 0)]
public bool Viewed { get; set; }
}
}
我收到一条错误消息:
/Phrase.cs(19,19):错误CS0246:类型或名称空间名称 找不到“ DefaultAttribute”(您是否缺少使用 指令还是程序集引用?)(CS0246)
有人知道我可以解决这个问题吗?
答案 0 :(得分:1)
bool
始终初始化为false,因为您为Viewed
设置了0,这在SQLite中意味着false。但是,如果您需要初始化其他字段,则可以通过属性本身来完成,除非设置另一个值,否则字段默认值不会更改。
private bool _sel = true;
[NotNull]
public bool Selected
{
get { return _sel; }
set { _sel = value; }
}
您可能希望使用PhraseId
AutoIncreament
而不是NotNull
,因为PrimarKey
始终受NotNull
约束。