gpt4 book ai didi

odata - 从 Web API 处理 OData 时出现值不能为空错误

转载 作者:行者123 更新时间:2023-12-05 07:58:38 25 4
gpt4 key购买 nike

我有一个返回 OData 的 WebAPI 方法:

[HttpGet]
public PageResult<Students> GetStudents(ODataQueryOptions<Students> queryOptions, string ClassId)
{
var allStudents = (from s in new OStudentContext(Convert.ToInt64(ClassId)).Student select s).ToList();

var results = queryOptions.ApplyTo(allStudents.AsQueryable());

return new PageResult<Students>(results as IEnumerable<Students>, Request.GetNextPageLink(), Request.GetInlineCount());

}

请求地址是这样的:

http://localhost:3333/api/odata/GetStudents?StudentId=40932&$inlinecount=allpages&$filter=((IsDeleted%20eq%20null)or(IsDeleted%20eq%20false))&$select=StudentId,FirstName,LastName,EmailID

结果中的值在那里,我可以看到返回的记录。准确地说,计数实际上是 7。

问题是 return 语句抛出这个异常:

Value cannot be null.Parameter name: data

Request.GetNextPageLink() 为空,因为没有下一页链接。

Request.GetInlineCount() 为 7。

那么什么是 null 以及错误对数据意味着什么?

提前致谢。

最佳答案

应用ODataQueryOptions后的元素类型不再是Students如果有$select或$expand。

改为改为 SelectExpandWrapper。

所以结果不能转换为IEnumerable<Students> .

SelectExpandWrapper的结构可以引用https://aspnetwebstack.codeplex.com/wikipage?title=%24select%20and%20%24expand%20support

关于odata - 从 Web API 处理 OData 时出现值不能为空错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24116125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com