我正在使用ASP。NET核心Web API。我有这些型号:
public abstract class EntityBase
{
[Key]
public int Id { get; set; }
}
public class Mandate : EntityBase
{
public DateTime DueDate { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual TransactionLog TransactionLog { get; set; }
}
public class TransactionLog
{
[Key, ForeignKey("Mandate")]
public int? MandateId { get; set; }
public string RawData { get; set; }
public virtual Mandate Mandate { get; set; }
}
模型:委托和交易日志
委托书与TransactionLog 有一对一关系
任务表
- Id
- 到期日期
- 开始日期
- 结束日期
TransactionLog
- MandateId(密钥(
- RawData
ViewModel(Dto(:
public class MandateDto
{
public DateTime DueDate { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int? MandateId { get; set; }
public string? RawData { get; set; }
}
EntityMapper:
public class EntityMapper
{
public Mandate FromMandateDtoToMandate(MandateDto mandate)
{
return new Mandate
{
DueDate = mandate.DueDate,
StartDate = mandate.StartDate,
EndDate = mandate.EndDate
};
}
public TransactionLog FromMandateDtoToTransactionLog(MandateDto mandate)
{
return new TransactionLog
{
RawData = ???,
};
}
}
授权服务:
public async Task<Mandate> Post(MandateDto mandate)
{
var mapper = new EntityMapper();
var mandate = mapper.FromMandateDtoToMandate(mandate);
var transaction = mapper.FromMandateDtoToTransactionLog(mandate);
try
{
await _unitOfWork.MandateRepository.Insert(mandate);
await _unitOfWork.TransactionRepository.Insert(transaction);
await _unitOfWork.SaveChangesAsync();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return mandate;
return transaction;
}
如前所述,委托书与交易日志有一对一的关系。由于委托书和交易日志数据将同时插入,我想将委托书中的DueDate、StartDate、EndDate自动插入交易日志的RawData中,作为JSON RawData:
RawData = ???
我该如何做到这一点?
感谢
您可以使用System.Text.Json
中的JsonSerializer.Serialize
方法来执行此操作。
你可以阅读此了解更多信息