title: Remove OData entity sets from $metadata endpoint
body: <p>I have an OData service built as .NET 5 web api, that exposes entity types and sets for different parts of the system- a public one for general data export and a &quot;private&quot; one that is used for internal applications.</p>
  <p>Some of these entity sets are meant for the &quot;private&quot; part are not yet (or will never be) ready for public exposure. I have excluded them from Swagger and user would get 404 when trying accessing it with the authentication that is used in the public part of the service.</p>
  <p>My issue is with $metadata endpoint that returns description about all the entity sets. So when a public user accesses the service, it sees entities that it should not.</p>
  <p>Is there a way to exclude specific entity sets from the $metadata?</p>
  <p>I've tried overriding ODataMetadataSerializer to exclude unwanted schema elements, but it does't allow manipulating the EDM model before generating the response.</p>