2

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

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

这意味着我有一个名为Container.

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

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

所以,我的问题是:有没有办法调用一个实体Container并通过 Web Api OData 公开它?(并且不会得到客户端编译时错误)。

注意:如果您尝试重现这一点,如果名为“Container”的实体与也是根项目的某物有关联(因此它包含在名为“Cntainer”的 DataServiceContext 类中。例如,如果 Containers有一个可能的 ContainerTypes 列表,并且有一个 ContainerTypes 的根列表,然后部分类尝试合并并且存在冲突。

4

1 回答 1

2

原来 ODataModelBuilder(用于定义所有实体集)具有 ContainerName 属性。

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

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.ContainerName = "YourCustomContainerNameHere";
于 2014-07-25T23:57:39.040 回答