我在 Pomelo 5.0 中使用了最新版本的 json 实现,并将我的 maria 服务器配置为使用 microsoft json 序列化。
var serverVersion = new MariaDbServerVersion(new Version(10, 3, 0));
services.AddDbContext<BusinessManagementDbContext>(options =>
{
options.UseMySql(databaseConfiguration.ConnectionString, serverVersion, m =>
{
m.UseMicrosoftJson(MySqlCommonJsonChangeTrackingOptions.FullHierarchyOptimizedSemantically);
m.EnableRetryOnFailure();
});
options.EnableSensitiveDataLogging(true);
});
我可以将我的 POCO 保存在我的数据库中,但是当我尝试查询我的数据时,我得到一个空对象。这是我的数据: HeidySQL 数据
我的查询非常简单,但我认为我没有使用正确的方式进行 json 查询。
await Context.ValidatedSaleInvoices.AsNoTracking().FirstOrDefaultAsync(x => x.Id == id);
我的数据和我的属性“内容”之间似乎没有反序列化。
我怎样才能做到这一点 ?
谢谢,
编辑
我的模型是:
public class ValidateSaleInvoiceEntity
{
public int Id { get; set; }
public ValidateSaleInvoiceContent Content { get; set; }
}
public class ValidateSaleInvoiceContent
{
public string BusinessName { get; set; }
public DateTime Date { get; internal set; }
public string Number { get; internal set; }
public Address Address { get; internal set; }
public List<ValidateSaleInvoiceLineEntity> Lines { get; internal set; } = new List<ValidateSaleInvoiceLineEntity>();
}
public class ValidateSaleInvoiceLineEntity
{
public string Description { get; internal set; }
public decimal Quantity { get; internal set; }
public decimal UnitPriceVatExcluded { get; internal set; }
public decimal VatRate { get; internal set; }
}
我的 json 结果是这样的(空的,就像没有反序列化一样:{ "BusinessName":"", "Date":"", "Number":"" etc.}
我的老板停止了我关于 MariaDB Json 实现的 poc,所以我不得不回到这个好老朋友纯 sql 专栏:/。这就是为什么我没有完整的 json 结果。对不起