gpt4 book ai didi

azure - TableController 和 Odata 查询

转载 作者:行者123 更新时间:2023-12-03 03:13:50 28 4
gpt4 key购买 nike

在一个小型 Azure 移动应用程序中,我在表 Controller 中有以下 GET 方法:

    public IQueryable<User> GetAllUser()
{
return Query();
}

使用以下 REST 调用,我可以查询姓氏='Tiger'的用户

GET: ~/userinfo?$filter=lastName%20eq%20'Tiger'

现在我想向我的用户添加组织字段,因此我将 get 方法更改为:

    public IQueryable<UserDto> GetAllUser()
{
return Query().Select(u => new UserDto{FirstName=u.FirstName, LastName=u.LastName, Organisation="Acme"});
}

但是现在,当我尝试使用相同的过滤器查询我的用户时:

GET: ~/userinfo?$filter=lastName%20eq%20'Tiger'

我收到“错误请求”错误...

我怎样才能让这个工作......

任何帮助将不胜感激......

最佳答案

尝试:

public IQueryable<UserDto> GetAll()
{
return Query().AsEnumerable().Select(u =>
new UserDto
{
FirstName = u.FirstName,
LastName = u.LastName,
Organisation = "Acme"
}).AsQueryable();
}

您的 ODATA 查询将用于 DTO 而不是实体。

您的 Controller 仍应使用TableController<User> .

您还可以使用 AutoMapper 并简单地执行以下操作:

return Query().ProjectTo<UserDTO>();

这将执行 LINQ to Entities。

关于azure - TableController 和 Odata 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369878/

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