【发布时间】:2020-05-21 23:39:24
【问题描述】:
我正在使用 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;
}
【问题讨论】:
-
使用第一种方法创建类的新实例时,值是否设置为true?
-
更正它为数据库中的数据设置为true。但我似乎无法在错误的地方添加新数据。
-
那么如果你创建一个新实例,将其设置为false,然后将其插入到数据库中,具体发生了什么?
-
我创建了新实例,仅使用 NotNull 将默认值设置为 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):