EF Core 访问嵌套嵌套实体
EF Core Accessing Nested-nested Entity
我有一个实体 CallTrackerLog
,它有许多 Clients
,其中有一个多 Advices
。我正在尝试为 advice
:
创建 HttpPost
[HttpPost("{callTrackerId}/{clientId}/advice")]
public IActionResult CreateCTClientAdvice(int callTrackerId, int clientId,
[FromBody] CallTrackerClientAdvice newAdvice)
{
if (newAdvice == null)
return BadRequest();
if (!ModelState.IsValid)
return BadRequest(ModelState);
var ctFromStore = _context.CallTrackers
.Include(log => log.CallTrackerClients)
.ThenInclude(log => log.CallTrackerClientAdvice)
.FirstOrDefault(ct => ct.CallTrackerId == callTrackerId);
var ctAdviceFromStore ctFromStore.CallTrackerClients.CallTrackerClientAdvice
.FirstOrDefault(c => c.CallTrackerClientId == clientId);
// ... add to db
return Ok();
}
问题是我无法使用 .FirstOrDefault(ct => ct.CallTrackerClientId == clientId)
访问 CallTrackerClientAdvice
- 它给了我一条红色下划线,尽管我以为我在上面加载了它。
错误:
为什么我无法访问CallTrackerClientAdvice
?
我怀疑你想要的是:
var ctAdviceFromStore = ctFromStore.CallTrackerClients
.FirstOrDefault(c => c.CallTrackerClientId == clientId)?.CallTrackerClientAdvice;
我有一个实体 CallTrackerLog
,它有许多 Clients
,其中有一个多 Advices
。我正在尝试为 advice
:
[HttpPost("{callTrackerId}/{clientId}/advice")]
public IActionResult CreateCTClientAdvice(int callTrackerId, int clientId,
[FromBody] CallTrackerClientAdvice newAdvice)
{
if (newAdvice == null)
return BadRequest();
if (!ModelState.IsValid)
return BadRequest(ModelState);
var ctFromStore = _context.CallTrackers
.Include(log => log.CallTrackerClients)
.ThenInclude(log => log.CallTrackerClientAdvice)
.FirstOrDefault(ct => ct.CallTrackerId == callTrackerId);
var ctAdviceFromStore ctFromStore.CallTrackerClients.CallTrackerClientAdvice
.FirstOrDefault(c => c.CallTrackerClientId == clientId);
// ... add to db
return Ok();
}
问题是我无法使用 .FirstOrDefault(ct => ct.CallTrackerClientId == clientId)
访问 CallTrackerClientAdvice
- 它给了我一条红色下划线,尽管我以为我在上面加载了它。
错误:
为什么我无法访问CallTrackerClientAdvice
?
我怀疑你想要的是:
var ctAdviceFromStore = ctFromStore.CallTrackerClients
.FirstOrDefault(c => c.CallTrackerClientId == clientId)?.CallTrackerClientAdvice;