Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms Xamarin设置默认布尔值_Xamarin.forms_Sqlite.net - Fatal编程技术网

Xamarin.forms Xamarin设置默认布尔值

Xamarin.forms Xamarin设置默认布尔值,xamarin.forms,sqlite.net,Xamarin.forms,Sqlite.net,我正在使用sqlite net pcl并向数据库DTO添加一个新列,我希望将默认值设置为true,然后在更新数据后,它将更新为正确的值。但是默认设置在xamarin中对我不起作用 还有别的办法吗 这将阻止我进行更新 [NotNull, Default(value: true)] 错误默认值未知 DTO 服务 await App.LocalDB.InsertTaxableLinksAsync(BuildDbTaxableLinkItem( public Task<int>

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

还有别的办法吗

这将阻止我进行更新

   [NotNull, Default(value: true)]
错误默认值未知

DTO

服务

 await App.LocalDB.InsertTaxableLinksAsync(BuildDbTaxableLinkItem(    public Task<int> InsertTaxableLinksAsync(List<DtoTaxableLink> taxableLinks)
ListResponse.Data));
wait App.LocalDB.InsertTaxableLinksAsync(BuildDbTaxableLinkItem)(公共任务InsertTaxableLinksAsync(列出taxableLinks)
ListResponse.Data);
本地数据库

public Task<int> InsertTaxableLinksAsync(List<DtoTaxableLink> taxableLinks)
{
return database.InsertAllAsync(taxableLinks, true);
}
public任务InsertTaxableLinksAsync(列出taxableLinks)
{
返回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;
            }
私有静态列表BuildDbTaxableLinkItem(列表taxableLinks)
{
List dtoTaxableLink=新列表();
foreach(taxableLinks中的var taxink)
{
DtoTaxableLink DtoTaxableLink=新的DtoTaxableLink();
dtoTaxableLink.IsTaxable=taxableLinks.IsTaxable;
添加(dtoTaxableLink);
}
返回dtoTaxableLink;
}

根据您的描述,在使用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; }
    }
}

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

当您使用第一个方法创建类的新实例时,该值是否设置为True?更正对于数据库中的数据,该值设置为True。但我似乎无法在错误的地方添加新数据。因此,如果创建一个新实例,将其设置为错误,然后将其插入数据库,具体发生了什么?我创建新实例时,仅使用NotNull和equal true将默认值设置为true。然后开始更新数据的过程,一旦数据更新为false,就会出现错误方法,如02-05 16:11:12.599 I/Choreographer(8302):跳过1040帧!应用程序可能在其主线程上做了太多工作。02-05 16:11:12.658 D/Mono(8302):DllImport在“e_sqlite3”(“libe_sqlite3.so”)中搜索。02-05 16:11:12.658 D/Mono(8302):搜索“sqlite3_extended_errcode”。02-05 16:11:13.116 D/单声道(8302):
 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;
            }
 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; }
    }
}