【发布时间】:2017-09-08 20:40:49
【问题描述】:
我正在尝试从我的 Core ASP.Net WebAPI 方法返回我的完整对象。
我一直在想我没有正确选择我的对象,或者我们的模式有问题。 但现在我注意到,如果我在返回对象之前放置断点,完整的对象就在我的查询中并准备好返回。
这就是方法:
[HttpPost]
public async Task<Case> AddCase([FromBody] EmployeeCaseFromBodyModel model)
{
Case employeeCase = new Case()
{
PrimaryEmployeeId = model.EmployeeId,
LerSpecialistId = model.LerSpecialistId,
InitialContactId = model.InitialContactId,
InitialConsultDate = model.InitialConsultDate,
Notes = model.Notes
};
Case newCase = await _caseGenericService.InsertAsync(employeeCase);
newCase.EmployeeCases = new List<EmployeeCase>();
newCase.EmployeeCases.Add(new EmployeeCase
{
CaseId = newCase.Id,
EmployeeId = model.EmployeeId
}
);
await _caseGenericService.UpdateAsync(newCase);
newCase = await _caseGenericService.GetSingleIncludingAsync(newCase.Id,
new Expression<Func<Case, object>>[] {
a => a.InitialContact,
b => b.LerSpecialist
});
return newCase;
}
如果我将断点放在这一行:
return newCase;
对象如下所示:
所以看到我的对象即使具有深层属性也是如此。
但是 API Post 返回这个 JSON 结果:
{
"initialContactId": 2,
"initialContact": {
"email": "test@hrsa.gov",
"organizationId": 1,
"supervisor": "Beth Dillon",
"supervisorEmail": "supervisor@hrsa.gov",
"firstName": "Cindy",
"lastName": "Adams",
"notes": "Notes 2",
"bargainingUnitId": 1,
"payPlanId": 8,
"gradeRankId": 5,
"positionTitleId": 25,
"seriesId": 2,
"isUnionEmployee": true,
"organization": null,
"bargainingUnit": null,
"payPlan": null,
"gradeRank": null,
"positionTitle": null,
"series": null,
"unionHours": null,
"unionEmployeeYesNo": "Yes",
"employeeCases": [
{
"employeeId": 2
}
]
}
}
它只返回 InitialContactID 和 IntitialContact 以及为 intialContact 填充的所有属性。 但是没有 LerSpecialist,也没有像 Id 和 IntitialConsultDate 这样的顶级简单属性?
为什么会这样?
它不应该返回我告诉它的确切完整对象吗?
我还尝试将返回类型设为 IActionResult 的 Task 而不是 Task Case,并返回 ObjectResult 而不是 Case。 但是不行。
【问题讨论】:
标签: asp.net-web-api asp.net-core-mvc