0

我正在使用 sqlite-net-pcl 并向数据库 DTO 添加一个新列,我想将默认值设置为 true,然后一旦我更新了数据,它就会更新为正确的值。但是默认值在 xamarin 中对我不起作用。

有没有其他方法可以做到这一点?

[NotNull]
        public boolean Istaxable  { get; set; } = true;

这将阻止我进行更新。

   [NotNull, Default(value: true)]

错误默认未知

DTO

public class DtoTaxableLink
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    [NotNull]
    public bool IsTaxable  { get; set; } = true;
}  

服务

 await App.LocalDB.InsertTaxableLinksAsync(BuildDbTaxableLinkItem(    public Task<int> InsertTaxableLinksAsync(List<DtoTaxableLink> taxableLinks)
ListResponse.Data));

本地数据库

public Task<int> InsertTaxableLinksAsync(List<DtoTaxableLink> taxableLinks)
{
return database.InsertAllAsync(taxableLinks, true);
}

帮手

 private static List<DtoTaxableLink> BuildDbTaxableLinkItem(List<TaxablelineLink> taxableLinks)
            {
                List<DtoTaxableLink> dtoTaxableLink= new List<DtoTaxableLink>();
    foreach (var taxink in taxableLinks)
                {
                    DtoTaxableLink dtoTaxableLink= new DtoTaxableLink();
                    dtoTaxableLink.IsTaxable  = taxableLinks.IsTaxable  ;              
                    dtoTaxableLink.Add(dtoTaxableLink);
                }
                return dtoTaxableLink;
            }
4

1 回答 1

1

根据您的描述,您希望在使用 sqlite-net-pcl 并将新列添加到数据库时将默认值设置为 true。

您可以通过属性本身来完成,字段默认值在设置另一个值之前不会更改。请查看以下代码:

 public class User
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string userName { get; set; }
    public string password { get; set; }

    private bool _sel = true;
    [NotNull]
    public bool Selected
    {
        get { return _sel; }
        set { _sel = value; }
    }
}

现在您可以看到我设置 Selected 属性的默认值为 True,然后您可以根据需要更新此值。

于 2020-02-06T02:57:49.593 回答