gpt4 book ai didi

c# - Web API OData 中不允许将 'Container' 的名称作为实体

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:09 25 4
gpt4 key购买 nike

我的实体列表包括一个名为“容器”的实体。 (我的公司经常与容器打交道,这是一个相当“一成不变”的术语。)

因此,当我为它们建模数据时,我很自然地称它们为容器。

这意味着我有一个名为 Container 的类。

我刚刚为 Web API OData 连接了所有 Controller ,当我尝试使用它编译客户端时,出现错误。 (我使用的是 WCF 数据服务客户端 nuget 包。)

错误是因为存在我的实体的 Container 部分类和另一个包含所有根级别集合的部分类,也称为 Container。 (注意:对于通过 OData 的 WCF 数据服务版本运行相同实体的服务,我没有收到此错误。)

所以,我的问题是:是否有任何方法可以拥有一个名为 Container 的实体并通过 Web Api OData 公开它?(并且不会出现客户端编译时错误).

注意:如果您尝试重现这一点,如果名为“Container”的实体与同样是根项的某物相关联(因此它包含在名为“Cntainer”的 DataServiceContext 类中),则会发生错误. 例如,如果 Container 有一个可能的 ContainerTypes 列表并且有一个 ContainerTypes 的根列表,那么 parital 类会尝试合并并且会发生冲突。

最佳答案

事实证明,ODataModelBuilder(用于定义所有实体集)具有 ContainerName 属性。

为您提供与默认“Container”不同的名称的设置

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.ContainerName = "YourCustomContainerNameHere";

关于c# - Web API OData 中不允许将 'Container' 的名称作为实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966043/

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