Я пишу веб-API odata, следуя этому руководству Мой код почти такой же (некоторый код был удален для удобства чтения):
webapiconfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Delivery>("Versions");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
}
}
контроллер:
public class VersionsController : ApiController
{
DeliveryContext db = new DeliveryContext();
[EnableQuery]
public IQueryable<Delivery> Get()
{
return db.deliveries;
}
DeliveryContext
public partial class DeliveryContext : DbContext
{
public DeliveryContext()
: base("name=DeliveryContext")
{
}
public virtual DbSet<Delivery> deliveries { get; set; }
}
Запуск GET от почтальона дает мне:
[{"number": - 1, "customer": "", "version": "", "othernumber": "", "identitynumber": ""}, {"number": 123, "customer": "i00000", "version": "8.5.2 "," othernumber ":" 564 "," identitynumber ":" 123 "}]
Моя проблема заключается в том, что при подключении к моему odataservice в Power BI он жалуется на:
DataSource.Error: OData: При чтении из программы чтения JSON обнаружен неожиданный узел 'StartArray'.Ожидался узел «StartObject».Подробности: DataSourceKind = OData DataSourcePath = http://localhost:51124/Versions
Наконец, почтальон GET к службе: {
"@odata.context":"http://localhost:51124/odataservice/$metadata","value":[
{
"name":"Versions","kind":"EntitySet","url":"Versions"
}
]
}
Любые предложения с благодарностью!