gpt4 book ai didi

c# - OData:找不到以继承类型命名的属性

转载 作者:行者123 更新时间:2023-12-02 04:24:46 31 4
gpt4 key购买 nike

对于我的示例,我有两个类

public class Location
{
public int Id { get; set; }
public string Name { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string Town { get; set; }
public string County { get; set; }
public string CountryCode { get; set; }
}

public class Customer : Location
{
public string BankAccountNumber { get; set; }
public string BankSortCode { get; set; }
}

在我的查询中,我返回所有位置和客户。

http://localhost:80/odata/Location?select=Id,Name,Town

但是,如果我尝试选择客户中的任何内容(编辑:所以我想要所有位置,但如果该位置也是客户,则需要银行帐号),我会收到错误。

http://localhost:80/odata/Location?select=Id,Name,Town,BankAccountNumber

"The query specified in the URI is not valid. Could not find a property named 'BankAccountNumber' on type 'MyNamespace.Location'."

有没有办法可以选择继承类型中的字段,而不需要全选?谢谢。

最佳答案

根据OData.org ,有 2 个选项来查询派生类型:

  1. ~/位置!客户/
  2. ~/Location/OfType('客户')

因此您的查询应如下所示:

http://localhost:80/odata/Location!Customer?select=Id,Name,Town,BankAccountNumber

http://localhost:80/odata/Location/OfType('Customer')?select=Id,Name,Town,BankAccountNumber

/编辑:钱力指出,上述博文指的是OData V2。在 Odata4 中,继承类型通过以下语法访问:

http://host/service/BaseType/Model.SubType

引用:http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html#_Toc372793786

关于c# - OData:找不到以继承类型命名的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27836849/

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