如何为用于在Xamarin中创建SQLITE表的类设置[NotNull,默认(值:0)]

时间:2018-09-18 09:42:34

标签: c# sqlite xamarin xamarin.forms

我正在尝试在用于像这样在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)

有人知道我可以解决这个问题吗?

1 个答案:

答案 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约束。