Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inheritance, complex vs entity type, and included models. #221

Open
Tracked by #114
chrisspre opened this issue Feb 25, 2021 · 1 comment
Open
Tracked by #114

Inheritance, complex vs entity type, and included models. #221

chrisspre opened this issue Feb 25, 2021 · 1 comment
Assignees
Labels

Comments

@chrisspre
Copy link
Contributor

chrisspre commented Feb 25, 2021

The current plan of record is to infer if a structured type is an entity or complex type (the type kind) based on the presence of a key or usage in a entity set (a).
The check a needs to happen across all structured types in the inheritance hierarchy (b) (up and down) since the whole hierarchy needs to be of one kind.

This check in (b) can only happen inside a single model file otherwise, the usage of a type in one model file might make it an entity and in another makes it a complex type. (c)

During transformation in CSDL, to be able to run the check for a referenced type (as a base type or property type, ...) , one needs to load the referenced/included models, and apply the logic to know the kind and determine if this is the right kind.
Not only is it necessary for the library I am using to produce in-memory EDM models (a more technical reason that might have a workaround). It is also necessary to know the kind to write the correct CSDL (determine if BaseType is allowed, distinguish between Navigation- and Structural property)

@chrisspre chrisspre added the RSDL label Feb 25, 2021
@chrisspre
Copy link
Contributor Author

As discussed 2/25, there is common understanding that it is indeed necessary to load the included models when a model gets translated into CSDL. Situations where this file is not available are considered very rare.

  • compiler
  • formal documentation
  • introductory documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant