【发布时间】:2018-09-12 11:51:40
【问题描述】:
我正在按照guide 编写一个 odata web api 我的代码几乎相同(为了便于阅读,删除了一些代码):
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"}]
我的问题是,当我在 Power BI 中连接到我的 odataservice 时,它会抱怨:
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"
}
]
}
非常感谢任何建议!
【问题讨论】: