我正在使用 ASP.NET Core 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; }
}
模型:Mandate 和 TransactionLog
Mandate 和 TransactionLog 是一對一的關系
任務表
- ID
- 到期日
- 開始日期
- 結束日期
事務日志
- 任務 ID(鍵)
- 原始資料
視圖模型(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; }
}
物體映射器:
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;
}
如前所述,Mandate 與 TransactionLog 具有一對一的關系。由于 Mandate 和 TransactionLog 資料將同時插入,我想自動將 DueDate、StartDate、EndDate 從 Mandate 插入到 TransactionLog 的 RawData 中作為 JSON RawData:
RawData = ???
我如何實作這一目標?
謝謝
uj5u.com熱心網友回復:
您可以使用JsonSerializer.Serialize方法 fromSystem.Text.Json來做到這一點。
您可以閱讀本文了解更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/366921.html
標籤:C# asp.net核心 asp.net-web-api
上一篇:使用依賴注入計算對方法的呼叫
