odata-v4-metadata icon indicating copy to clipboard operation
odata-v4-metadata copied to clipboard

$metadata/EntityTypes: multiple keys definition not supported

Open TheOnly040 opened this issue 5 years ago • 0 comments

Hi,

When an EntityType contains multiple keys, it only display the first @Edm.Key refered inside the model

Example: EntityType Definition export class RoleAssignment extends PersistentObject { @Edm.Key @Edm.String @Edm.MaxLength(255) @Edm.Annotate({ term: "UI.DisplayName", string: "User id" }) UserId: string;

@Edm.Key 
@Edm.String
@Edm.MaxLength(20)
@Edm.Annotate({
    term: "UI.DisplayName",
    string: "Role id"
})
RoleId: string;

...

$metadata response EntityType Name="RoleAssignment"> <Key> <PropertyRef Name="UserId"/> </Key>

Proposed correction File: src/edm.ts From line: 208 @parseAs(new AttributeFunctionChain( (d, i) =>d.key, (props, i) => props || [], (props, i) => props.map(prop => new Key(prop, i)), (props) => { return { propertyRefs: props.reduce((aRefs, mProp) => aRefs.concat(mProp.propertyRefs), []) }; /return props[0];/ } ))

instead of @parseAs(new AttributeFunctionChain( (d, i) =>d.key, (props, i) => props || [], (props, i) => props.map(prop => new Key(prop, i)), (props) => return props[0] ))

Many thanks for your attention

TheOnly040 avatar Sep 01 '20 10:09 TheOnly040