我目前有一个对象Report
。该报告对象具有多个子实体,例如WorkOrder
和ReleaseQuestions
。我只是想问一下将WorkOrder
和ReleaseQuestions
添加到数据库的最佳实践。当前,当创建报告时,我将新的空白对象添加到我的报告对象中,然后将其添加到数据库中。这是因为最终这些组件将由用户填写,因此将空白行放在数据库中并不会带来太大危害,但是我不确定这是最佳实践。如果单独添加新组件会更好吗?还是我正在做的事情不太远?
代码,适合更直观的人:
public async Task<ReportModel> AddReport(ReportModel reportModel)
{
// CapacityPlanReport report = _mapper.Map<ReportModel, CapacityPlanReport>(reportModel);
var report = new CapacityPlanReport
{
AddedYear = DateTime.Now.ToString(),
Type = reportModel.Type,
Eta = reportModel.Eta
};
// Create the corresponding pieces of the report in the database.
report.ReleaseQuestion = new CapacityPlanReleaseQuestion();
report.WorkOrder = new CapacityPlanWorkOrder();
_context.CapacityPlanReport.Add(report);
await _context.SaveChangesAsync();
var result = await GetReport(report.CapacityPlanReportId);
return result;
}
答案 0 :(得分:0)
如果要由用户以后填充组件,则仅插入Report
并使用null
时根本不填充它们。当用户为您提供适当的数据时,创建实体,将其分配给报表,然后SaveChanges
-EF将更新您现有的Report
并将子实体和所有必要的FK引用插入数据库中。 / p>
对于尚不存在的东西,null
而不是空实例,这可能更自然。一个空实例毕竟是。