如何使动态edm模型支持odata查询

Bra*_*AGr 5 c# odata asp.net-web-api asp.net-web-api2

我一直在尝试将DynamicEdmModelCreation示例从https://github.com/OData/ODataSamples/tree/master/WebApi/v4/DynamicEdmModelCreation调整为可行的v3版本(我想将odata直接加载到excel中,而不是支持odata v4)

我添加config.AddODataQueryFilter()到设置和[EnableQuery]Controller的get方法,但我现在收到异常:

System.Web.Http.OData.dll中发生'System.Runtime.Serialization.SerializationException'类型的第一次机会异常

附加信息:'EnumerableQuery`1'无法使用ODataMediaTypeFormatter序列化.

这是从https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/OData/src/System.Web.Http.OData/OData/Formatter/ODataMediaTypeFormatter.cs#L577抛出的

事实上我的Controller的Get方法正在返回EdmEntityObjectCollection一个问题吗?我原本以为只需添加EnableQuery属性就足以让框架知道如何将该查询操作应用于EdmEntityObjectCollection我正在返回的内容(这将包含比可能需要的更多的数据)

Fan*_*ang 5

您所做的是正确的,但 OData WebApi 现在不支持非类型化场景中的查询选项,并且关于此功能存在一个未解决的问题