Hallo allemaal,
Ik probeer OData te gebruiken en ik heb een probleem met de $expand functie. Op dit moment heb ik 3 entiteiten. Deze zijn als volgt:
Event:
Order:
Ticket:
Als ik een Event op wil halen, vervolgens Orders expand en dan binnen Orders ook Tickets expand, is er geen probleem. Alles wordt correct opgehaald en de expand functie werkt naar behoren. Zolang ik maar het Event als "startpunt" gebruik.
Als ik echter een Order selecteer (wat overigens prima werkt) en dan vervolgens $expand toe wil passen op Tickets, krijg ik de volgende error: "'DbQuery`1' cannot be serialized using the ODataMediaTypeFormatter."
Nogmaals, dit gebeurt ALLEEN als ik de Tickets wil zien voor een specifieke Order.
Volgens mij zitten de relaties goed. Dat blijkt ook wel als ik het Event als startpunt gebruik en ik verder alles correct kan zien.
Heeft iemand enig idee wat ik hier verkeerd doe?
Ik probeer OData te gebruiken en ik heb een probleem met de $expand functie. Op dit moment heb ik 3 entiteiten. Deze zijn als volgt:
Event:
code:
1
2
3
4
5
6
7
8
9
| public int Id { get; set; } public string UserId { get; set; } public string Name { get; set; } public string ShopName { get; set; } public string ImageUrl { get; set; } public string Description { get; set; } public DateTimeOffset Start { get; set; } public DateTimeOffset End { get; set; } public virtual ICollection<Order> Orders { get; set; } = new Collection<Order>(); |
Order:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public int Id { get; set; } [ForeignKey("Event")] public int EventId { get; set; } public string CustomerFirstName { get; set; } public string CustomerLastName { get; set; } public string CustomerEmail { get; set; } public string CustomerPhoneNumber { get; set; } public string CustomerAddress { get; set; } public string CustomerHouseNumber { get; set; } public string TransactionId { get; set; } public TransactionStatus Status { get; set; } public DateTimeOffset OrderedOn { get; set; } public virtual Event Event { get; set; } public virtual ICollection<Ticket> Tickets { get; set; } = new Collection<Ticket>(); |
Ticket:
code:
1
2
3
4
5
6
7
8
| public int Id { get; set; } [ForeignKey("Order")] public int OrderId { get; set; } public string Barcode { get; set; } public virtual Order Order { get; set; } |
Als ik een Event op wil halen, vervolgens Orders expand en dan binnen Orders ook Tickets expand, is er geen probleem. Alles wordt correct opgehaald en de expand functie werkt naar behoren. Zolang ik maar het Event als "startpunt" gebruik.
Als ik echter een Order selecteer (wat overigens prima werkt) en dan vervolgens $expand toe wil passen op Tickets, krijg ik de volgende error: "'DbQuery`1' cannot be serialized using the ODataMediaTypeFormatter."
Nogmaals, dit gebeurt ALLEEN als ik de Tickets wil zien voor een specifieke Order.
Volgens mij zitten de relaties goed. Dat blijkt ook wel als ik het Event als startpunt gebruik en ik verder alles correct kan zien.
Heeft iemand enig idee wat ik hier verkeerd doe?