我目前正在.NETCore3.1中开发一个ODataAPI,它从SQLServer获取数据。使用postman,我将get请求发送到带有accept头text/xml和application/json的api。
使用此url:http://localhost:8008/odata/contact?$filter=no_ueq't20-1234567'&$select=no和应用程序/json接受头(或无接受头)响应为
json响应
但对于accept header application/xml或text/xml:
应用程序引发了未处理的异常。system.argumentexception:类型为'system.linq.enumerablequery'的对象 1[Microsoft.AspNet.OData.Query.Expressions.SelectExpandBinder+SelectSome
“1[models.contact]]”无法转换为类型“system.collections.generic.ienumerable”“1[models.contact]]”。
奇怪的是,当从url中删除$select部分时,应用程序正确地处理了请求(200)。
我的控制器操作:
[HttpGet]
[ODataRoute(nameof(Contact))]
public IQueryable<Contact> GetContact()
{
return _context.Contact;
}
有人见过这种行为吗?
1条答案
按热度按时间cgh8pdjw1#
为了回答我自己的问题,这里有一个可能的解决方法: