Xamarin.forms Xamarin设置默认布尔值
我正在使用sqlite net pcl并向数据库DTO添加一个新列,我希望将默认值设置为true,然后在更新数据后,它将更新为正确的值。但是默认设置在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>
[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; }
}
}