Sto creando un'app per sondaggi e ho 3 modelli di dominio:
ActivityItem
per ogni attività che voglio chiedere.
ItemResponse
per legare insieme un ActivityItem
e una Checklist
Checklist
di Checklist
per contenere tutti gli ItemResponses
Voglio avere la Checklist
. ItemResponse
. ActivityItem
. Name
nella vista, ma ActivityItem
è sempre nullo nonostante il database abbia correttamente riempito ActivityItemId. Semplicemente non capisco perché l'app non possa Include()
quella tabella.
Ecco alcuni frammenti dei miei modelli:
ActivityItem
public class ActivityItem
{
public int Id { get; set; }
public string Name { get; set; }
ItemResponse
public class ItemResponse
{
public int Id { get; set; }
public int ChecklistId { get; set; }
public virtual Checklist Checklist { get; set; }
public int ActivityItemId { get; set; }
public virtual ActivityItem ActivityItem { get; set; }
Checklist
public class Checklist
{
public int Id { get; set; }
public ICollection<ItemResponse> ItemResponses { get; set; }
Sono grato per qualsiasi aiuto che mi indichi la giusta direzione sul perché questo non funziona. Grazie!
Questo perché il nome della proprietà di navigazione è ActivityItem
ma si chiama ActivityItems
. Quindi la query completa dovrebbe essere la seguente:
var checkList = await _context.Checklist.Include(c => c.ItemResponses)
.ThenInclude(ir => ir.ActivityItem).ToListAsync();