【问题标题】:How have more than two expands in restier asp.net如何在restier asp.net中有两个以上的扩展
【发布时间】:2019-12-07 16:46:25
【问题描述】:

我有一个 RESTier 服务,我需要在浏览器 URL 中使用两个以上的展开,如下所示:

http://localhost:64747/api/SI24/Customers?$filter=Id%20eq%2067922&$expand=Bns($expand=Parvandes($expand=ParvandeStateLogs))

我不能为此服务创建任何控制器。如果您在我的网址中看到,您可以理解我必须在四个表之间导航。这些表是 Customers 、 Bns 、 Parvandes 、 ParvandeStateLogs。我该如何解决这个问题?

【问题讨论】:

  • 什么是展开?
  • 像加入一样展开工作
  • 不,这个地址不适合我。如果您在我的网址中看到,您可以理解我必须在四个表之间导航。这些表是 Customers 、 Bns 、 Parvandes 、 ParvandeStateLogs ,您地址中的方法在我的情况下不起作用

标签: c# asp.net api odata restier


【解决方案1】:

我自己违背自己的意愿决定为此查询制作一个控制器,并在其操作中添加了“[EnableQuery(MaxExpansionDepth = 50)]”的属性,如下所示:

public class CustomersController : ODataController
{
    private SI24 db = new SI24();

    // GET: api/Customers
    [EnableQuery(MaxExpansionDepth = 50)]
    public IQueryable<Customer> GetCustomers()
    {
        return db.Customers;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2016-07-18
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多