Używam ODataConventionModelBuilder zbudować model dla EDM Web API OData obsługa jak ten:Jak zapobiec ODataConventionModelBuilder, aby automatycznie odsłonić wszystkie metadane typów wyprowadzonych?
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.Namespace = "X";
builder.ContainerName = "Y";
builder.EntitySet<Z>("Z");
IEdmModel edmModel = builder.GetEdmModel();
klasy Z znajduje się w jednym zespole, a tam jest publicznego klasa Q pochodzi od Z znajduje się w innym zestawie.
ODataConventionModelBuilder będzie generuje EDM modelu że zawiera definicję klasy Q (wśród innych klas pochodne) i będzie narażony metadanych usług. Jest to niepożądane w naszym przypadku.
Jeśli klasa pochodna jest niedostępna (na przykład zdefiniowana jako wewnętrzna), to na pewno nie istnieje.
Czy istnieje sposób wymuszenia ODataConventionModelBuilder, aby NIE automatycznie eksponować metadane wszystkich wyprowadzonych typów?
Działa jak urok, dziękuję! Jak mogę tego nie zauważyć ... –
Nie wyklucza to automatycznego wykrywania. Mam tuziny dziedziczonych bytów, ignorowanie każdego z nich indywidualnie jest niepraktyczne i kończy się błędem "sekwencja zawiera wiele elementów". – Jerther
Jest to zgodne z projektem: https://aspnetwebstack.codeplex.com/workitem/1928 – Jerther