You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The model provides a lot of APIs for traversing and querying elements in the model. However, a lot of this APIs are insufficient or limited, leading to expensive lookup operations.
Here are example of things that are difficult to do and lead to inefficient traversals
Finding all properties in a model, or finding properties that meet a certain criteria. Currently, to find properties, you need to go through the collection of entity and complex types, e.g. model.SchemaElements.OfType<IEdmStructuredType()>().SelectMany(t => t.DeclaredProperties)
Finding a type or property using a span (to avoid substring allocations) related: 2801
Finding a type or property by name, using case-insensitive or custom comparer. In the past, we have resorted to reading all elements that need to be looked up and caching them in a separate dictionary with case-insensitive comparer, see: Create cache to speed up case-insensitive look up of schema elements #2610
etc.
Assemblies affected
Microsoft.OData.Edm 8.x
The text was updated successfully, but these errors were encountered:
Let's create an ADO item to track this and split the work between breaking and non-breaking. Let's call non-breaking p2 items and breaking p3 for the next major version rev, with the planning and design for breaking as p2.
The model provides a lot of APIs for traversing and querying elements in the model. However, a lot of this APIs are insufficient or limited, leading to expensive lookup operations.
Here are example of things that are difficult to do and lead to inefficient traversals
model.SchemaElements.OfType<IEdmStructuredType()>().SelectMany(t => t.DeclaredProperties)
2801
Assemblies affected
Microsoft.OData.Edm
8.xThe text was updated successfully, but these errors were encountered: