Quantcast
Channel: ASPNETWebStack Issue Tracker Rss Feed
Viewing all articles
Browse latest Browse all 7215

Created Unassigned: $select and $expand not working properly for complex types in json formatter [1048]

$
0
0
Given the following model:

```
public class JsonSelectCustomer
{
public int Id { get; set; }
public string Name { get; set; }
public virtual IList<JsonSelectOrder> JsonSelectOrders { get; set; }
}

public class JsonSelectPremiumCustomer : JsonSelectCustomer
{
public string Category { get; set; }
public IList<JsonSelectBonus> Bonuses { get; set; }
}

public class JsonSelectBonus
{
public int Id { get; set; }
public double Ammount { get; set; }
}

public class JsonSelectOrder
{
public int Id { get; set; }
public DateTime Date { get; set; }
public JsonSelectAddress BillingAddress { get; set; }
public virtual IList<JsonSelectOrderDetail> OrderDetails { get; set; }
}

public class JsonSelectAddress
{
public string FirstLine { get; set; }
public string SecondLine { get; set; }
public int ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
}

public class JsonSelectOrderDetail
{
public int Id { get; set; }
public string Name { get; set; }
public int Ammount { get; set; }
public double Price { get; set; }
}
```

When a customer issues the following query:
/api/JsonSelectCustomer?$select=Id,JsonSelectOrders&$expand=JsonSelectOrders

The JsonSelectAddress property doesn't get serialized as it does in the OData case.
Here is the response payload sample:

```
[
{
"Id": 0,
"JsonSelectOrders": []
},
{
"Id": 1,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2454402-07:00"
}
]
},
{
"Id": 2,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2464399-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2464399-07:00"
}
]
},
{
"Id": 3,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
}
]
},
{
"Id": 4,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
}
]
},
{
"Id": 5,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
}
]
},
{
"Id": 6,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
}
]
},
{
"Id": 7,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
}
]
},
{
"Id": 8,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
}
]
},
{
"Id": 9,
"JsonSelectOrders": [
{
"Id": 0,
"Date": "2013-05-14T11:20:45.2474403-07:00"
},
{
"Id": 1,
"Date": "2013-05-13T11:20:45.2474403-07:00"
},
{
"Id": 2,
"Date": "2013-05-12T11:20:45.2474403-07:00"
},
{
"Id": 3,
"Date": "2013-05-11T11:20:45.2474403-07:00"
},
{
"Id": 4,
"Date": "2013-05-10T11:20:45.2474403-07:00"
},
{
"Id": 5,
"Date": "2013-05-09T11:20:45.2474403-07:00"
},
{
"Id": 6,
"Date": "2013-05-08T11:20:45.2474403-07:00"
},
{
"Id": 7,
"Date": "2013-05-07T11:20:45.2474403-07:00"
},
{
"Id": 8,
"Date": "2013-05-06T11:20:45.2474403-07:00"
}
]
}
]
```



Viewing all articles
Browse latest Browse all 7215

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>