ODataConventionModelBuilder

ODataConventionModelBuilder

我正在使用ODataConventionModelBuilder来为Web API OData服务构建Edm模型,如下所示:

ODataModelBuilder builder = new ODataConventionModelBuilder();

builder.Namespace = "X";

builder.ContainerName = "Y";

builder.EntitySet<Z>("Z");

IEdmModel edmModel = builder.GetEdmModel();

Z 类位于一个程序集中,并且公共(public) Q 派生自位于不同程序集中的 Z

ODataConventionModelBuilder将生成 Edm模型,该包括类 Q的定义Q (以及其他派生类),并且它将与服务元数据一起公开。在我们的情况下,这是不可取的。

当派生类无法访问(例如定义为内部)时,这种问题肯定不存在。

有没有办法强制ODataConventionModelBuilder不自动公开所有派生类型的元数据?

最佳答案

这应该工作:

ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

builder.Namespace = "X";

builder.ContainerName = "Y";

builder.EntitySet("Z");

builder.Ignore<Q>();

IEdmModel edmModel = builder.GetEdmModel();

关于c# - 如何防止ODataConventionModelBuilder自动公开所有派生类型的元数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26257993/

10-13 07:15