beef-entity-v5-codegen
Beef (Business Entity Execution Framework) entity code-generation configuration (v5)
| File match |
entity.beef-5.yaml
entity.beef-5.yml
entity.beef-5.json
refdata.beef-5.yaml
refdata.beef-5.yml
refdata.beef-5.json
datamodel.beef-5.yaml
datamodel.beef-5.yml
datamodel.beef-5.json
*.entity.beef-5.yaml
*.entity.beef-5.yml
*.entity.beef-5.json
*.refdata.beef-5.yaml
*.refdata.beef-5.yml
*.refdata.beef-5.json
*.datamodel.beef-5.yaml
*.datamodel.beef-5.yml
*.datamodel.beef-5.json
|
|---|---|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/beef-entity-v5-codegen/latest.json |
| Source | https://raw.githubusercontent.com/Avanade/Beef/master/tools/Beef.CodeGen.Core/Schema/entity.beef-5.json |
Validate with Lintel
npx @lintel/lintel check
All of
Definitions
The CodeGeneration object defines global properties that are used to drive the underlying entity-driven code generation.
Defaults to true. This can be overridden within the Entity(s) and/or Operation(s).
Defaults to Company + . (literal) + AppName + .Business.Entities (literal).
Defaults to Company + . (literal) + AppName + .Common.Entities (literal).
This is used where serializing within the Web API Controller and the ExecutionContext.IsRefDataTextSerializationEnabled is set to true (which is automatically set where the url contains $text=true). This can be further configured on the Entity and for each Property.
Required to identify an entity as being Reference Data. Specifies the underlying .NET Type used for the Reference Data identifier. Results in all underlying entities becoming Reference Data.
Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred. Where the Type matches an already inferred value it will be ignored.
Defaults to SystemText. This can be overridden within the Entity(s).
Defaults to etag. Note that the JsonName can be set individually per property where required.
Typically used where referening a Type from a Namespace that is not generated by default.
Typically used where referening a Type from a Namespace that is not generated by default.
Typically used where referening a Type from a Namespace that is not generated by default.
This can be overridden within the Entity(s) and/or their corresponding Operation(s).
This will automatically set the Operation.WebApiLocation for an Operation named Create where there is a corresponding named Get. This can be overridden within the Entity(s).
This can be overridden within the Entity(s) and/or their corresponding Operation(s).
This can be overridden within the Entity(s) and Operation(s).
Defaults to CoreEx (literal). This can be overridden within the Entity(s), Operation(s) and Parameter(s).
Defaults to None. Indicates that the implementation for the underlying Operations will be auto-implemented using the selected data source (unless explicitly overridden). When selected some of the related attributes will also be required (as documented). Additionally, the AutoImplement can be further specified/overridden per Operation.
Defaults to IDatabase. Should be formatted as Type + ^ + Name; e.g. IDatabase^Db. Where the Name portion is not specified it will be inferred. This can be overridden within the Entity(s).
Defaults to dbo.
Defaults to SqlServer. Enables specific database provider functionality/formatting/etc. where applicable.
Defaults to true. The DatabaseMapperEx essentially replaces the DatabaseMapper as it is more performant (extended/explicit); this option can be used where leagcy/existing behavior is required.
Defaults to IEfDb. Should be formatted as Type + ^ + Name; e.g. IEfDb^Ef. Where the Name portion is not specified it will be inferred. This can be overridden within the Entity(s).
Defaults to ICosmosDb. Should be formatted as Type + ^ + Name; e.g. ICosmosDb^Cosmos. Where the Name portion is not specified it will be inferred. This can be overridden within the Entity(s).
Defaults to IOData. Should be formatted as Type + ^ + Name; e.g. IOData^OData. Where the Name portion is not specified it will be inferred. This can be overridden within the Entity(s).
Defaults to IHttpAgent. Should be formatted as Type + ^ + Name; e.g. IHttpAgent^HttpAgent. Where the Name portion is not specified it will be inferred. This can be overridden within the Entity(s).
Defaults to StringToBase64Converter.
Defaults to ReferenceDataCodeConverter<T>. Where this value is suffixed by <T> or {T} this will automatically be set to the Type.
Defaults to Code (literal).
Defaults to Text (literal).
Defaults to IsActive (literal).
Defaults to SortOrder (literal).
Defaults to RowVersion (literal).
Defaults to DataSvc. Used to enable the sending of messages to the likes of EventHub, ServiceBus, SignalR, etc. This can be overridden within the Entity(s).
The event source is only updated where an EventSourceKind is not None. This can be extended within the Entity(s).
Defaults to None (being the event source is not updated).
Used to enable the sending of messages to the likes of EventHub, ServiceBus, SignalR, etc. This can be overridden within the Entity(s).
Defaults to .. Used only where the subject is automatically inferred.
Defaults to None (no formatting required, i.e. as-is)`.
Usage will force a rollback of any underlying data transaction (where the provider supports TransactionScope) on failure, such as an EventPublish error. This is by no means implying a Distributed Transaction (DTC) should be invoked; this is only intended for a single data source that supports a TransactionScope to guarantee reliable event publishing. Defaults to false. This essentially defaults the Entity.EventTransaction where not otherwise specified. This should only be used where EventPublish is DataSvc and a transactionally-aware data source is being used.
gRPC support is an explicit opt-in model. Must be set to true for any of the subordinate gRPC capabilities to be code-generated. Will require each Entity, and corresponding Property and Operation to be opted-in specifically.
Defaults to Company (runtime parameter) + . + AppName (runtime parameter). For example Beef.Demo.
Defaults to PathBase + .Common (literal). For example Beef.Demo.Common.
Defaults to PathBase + .Business (literal). For example Beef.Demo.Business.
Defaults to PathBase + . + ApiName (runtime parameter). For example Beef.Demo.Api.
Defaults to Company (runtime parameter) + . + AppName (runtime parameter). For example Beef.Demo.
Defaults to NamespaceBase + .Common (literal). For example Beef.Demo.Common.
Defaults to NamespaceBase + .Business (literal). For example Beef.Demo.Business.
Defaults to NamespaceBase + . + ApiName (runtime parameter). For example Beef.Demo.Api.
Defaults to Create.
Defaults to Read.
Defaults to Update.
Defaults to Delete.
The Entity is used as the primary configuration for driving the entity-driven code generation.
Overrides the Name (as sentence text) for the summary comments. It will be formatted as: Represents the {Text} entity.. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.
Overrides the Name as the code-generated file name.
Overrides the Name to be used for private fields. By default reformatted from Name; e.g. FirstName as _firstName.
Overrides the Name to be used for argument parameters. By default reformatted from Name; e.g. FirstName as firstName.
The .NET Type to be used for the const values. Defaults to string.
Set to either true or false to override as specified; otherwise, null to check each property. Defaults to null.
Defaults to CodeGeneration.WithResult. This can be overridden within the Operation`(s).
Required to identify an entity as being Reference Data. Specifies the underlying .NET Type used for the Reference Data identifier.
This is used where serializing within the Web APIController and the ExecutionContext.IsRefDataTextSerializationEnabled is set to true (which is automatically set where the url contains $text=true). Defaults from CodeGeneration.RefDataText.
Specifies the default sort order for the underlying Reference Data collection. Defaults to SortOrder.
Defaults to EntityBase for a standard entity. For Reference Data it will default to ReferenceDataBaseEx<xxx> depending on the corresponding RefDataType value. See OmitEntityBase if the desired outcome is to not inherit from any of the aforementioned base classes.
Will attempt to infer the following: IIdentifier<Guid>, IIdentifier<int>, IIdentifier<long>, IIdentifier<string>, IETag and IChangeLog. Defaults to true.
Appended to the end of the standard structure as follows: {Company}.{AppName}.Business.Entities.{Namespace}.
As such any of the EntityBase related capabilites are not supported (are omitted from generation). The intention for this is more for the generation of simple internal entities.
Defaults to the CodeGeneration.JsonSerializer configuration property where specified; otherwise, SystemText.
Enables the likes of additional paging state to be stored with the underlying collection.
Defaults to EntityBaseCollection or EntityBaseKeyedCollection depending on CollectionKeyed. For Reference Data it will default to ReferenceDataCollectionBase.
Defaults to EntityCollectionResult.
Value may only specifiy one or more of the CGRUDBAQ characters (in any order) to define the automatically generated behavior (operations); for example: CRUPD or CRUP or rba (case insensitive). This is shorthand for setting one or more of the following properties: Get, GetByArgs, GetAll, 'Create', Update, Patch and Delete. Where one of these properties is set to either true or false this will take precedence over the value set for Behavior.
Defaults to CodeGeneration.AutoImplement (where RefDataType or EntityFrameworkModel or CosmosModel or HttpAgent is not null; otherwise, None. Indicates that the implementation for the underlying Operations will be auto-implemented using the selected data source (unless explicitly overridden). When selected some of the related attributes will also be required (as documented). Additionally, the AutoImplement can be further specified/overridden per Operation.
Defaults to Public.
Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred. Where the Type matches an already inferred value it will be ignored.
This can be overridden using Operation.DataExtensions.
Defaults to Name + Id (literal).
Defaults to Code (literal).
Defaults to Text (literal).
Defaults to IsActive (literal).
Defaults to SortOrder (literal).
Defaults to RowVersion (literal).
Defaults to sp (literal) + Name + GetAll (literal).
Defaults to the CodeGeneration.DatabaseName configuration property (its default value is IDatabase). Should be formatted as Type + ^ + Name.
Defaults to dbo.
Otherwise, by default, a Mapper will be generated.
Defaults to CodeGeneration.DatabaseMapperEx (its default value is true). The DatabaseMapperEx essentially replaces the DatabaseMapper as it is more performant; this option can be used where leagcy/existing behavior is required.
Defaults to CodeGeneration.EntityFrameworkName. Should be formatted as Type + ^ + Name.
Otherwise, by default, a Mapper will be generated.
Defaults to the CodeGeneration.CosmosName configuration property (its default value is ICosmosDb). Should be formatted as Type + ^ + Name.
The value PartitionKey.None can be specified. Literals will need to be quoted.
Otherwise, by default, a Mapper will be generated.
Defaults to the CodeGeneration.ODataName configuration property (its default value is IOData). Should be formatted as Type + ^ + Name.
The underlying Simple.OData.Client will attempt to infer.
Otherwise, by default, a Mapper will be generated.
Defaults to CodeGeneration.HttpAgentName configuration property (its default value is IHttpAgent). Should be formatted as Type + ^ + Name.
This is the base (prefix) URI for the HTTP Agent endpoint and can be further extended when defining the underlying Operation(s).
This can be overridden within the Operation(s).
This can be overridden within the Operation(s).
Prepended to Operation.HttpAgentCode where specified to enable standardized functionality.
Otherwise, by default, a Mapper will be generated.
Defaults to true.
Defaults to Public.
Full indicates the logic is fully customized (only invocation is code-generated). Partial indicates combination of surrounding code-generation with final custom invocation versus data-layer. None indicates data-layer invocation with no custom invocation (default).
Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred. Where the Type matches an already inferred value it will be ignored.
This can be overridden using Operation.DataSvcExtensions.
Defaults to the CodeGeneration.EventPublish configuration property (inherits) where not specified. Used to enable the sending of messages to the likes of EventGrid, Service Broker, SignalR, etc. This can be overridden within the Operation(s).
Defaults to Name (as lowercase) appended with the /{$key} placeholder. Note: when used in code-generation the CodeGeneration.EventSourceRoot will be prepended where specified. To include the entity id/key include a {$key} placeholder (Create, Update or Delete operation only); for example: person/{$key}. This can be overridden for the Operation.
Usage will force a rollback of any underlying data transaction (where the provider supports TransactionScope) on failure, such as an EventPublish error. This is by no means implying a Distributed Transaction (DTC) should be invoked; this is only intended for a single data source that supports a TransactionScope to guarantee reliable event publishing. Defaults to CodeGeneration.EventTransaction. This essentially defaults the Operation.DataSvcTransaction where not otherwise specified. This should only be used where a transactionally-aware data source is being used.
Defaults to Public.
Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred. Where the Type matches an already inferred value it will be ignored.
This can be overridden using Operation.ManagerExtensions.
Only used for defaulting the Create and Update operation types (Operation.Type) where not specified explicitly.
This can be overridden within the CodeGeneration and Operation(s).
Defaults to CodeGeneration.ValidationFramework. This can be overridden within the Operation(s) and Parameter(s).
This is the base (prefix) URI for the entity and can be further extended when defining the underlying Operation(s). The CodeGeneration.WebApiRoutePrefix will be prepended where specified. Where not specified will automatically default to the pluralized Name (as lowercase).
Defaults to the CodeGeneration.WebApiAuthorize configuration property (inherits) where not specified; can be overridden at the Operation level also.
Defaults to Public.
Each constructor parameter should be formatted as Type + ^ + Name; e.g. IConfiguration^Config. Where the Name portion is not specified it will be inferred. Where the Type matches an already inferred value it will be ignored.
This will automatically set the Operation.WebApiLocation for an Operation named Create where there is a corresponding named Get. This is defaulted from the CodeGen.WebApiAutoLocation.
This provides an alternative where the underlying data source does not natively support optimistic concurrency (native support should always be leveraged as a priority). Where the Operation.Type is Update or Patch, the request ETag will be matched against the response for a corresponding Get operation to verify no changes have been made prior to updating. For this to function correctly the .NET response Type for the Get must be the same as that returned from the corresponding Create, Update and Patch (where applicable) as the generated ETag is a SHA256 hash of the resulting JSON. This defaults the Operation.WebApiConcurrency.
Defaults to Get. Specify either just the method name (e.g. OperationName) or, interface and method name (e.g. IXxxManager.OperationName) to be invoked where in a different YyyManager.OperationName.
The model will be generated with OmitEntityBase = true. Any reference data properties will be defined using their RefDataType intrinsic Type versus their corresponding (actual) reference data Type.
Is a shorthand means for setting all of the other Exclude* properties (with the exception of ExcludeEntity) to exclude.
Defaults to Include indicating not to exclude. A value of Exclude indicates to exclude all output; alternatively, RequiresMapper indicates to at least output the corresponding Mapper class.
Used where not overridden specifically for an Operation; i.e. acts as the default.
gRPC support is an explicit opt-in model (see CodeGeneration.Grpc configuration); therefore, each corresponding Property and Operation will also need to be opted-in specifically.
The Property object defines an Entity property and its charateristics.
By default the Text will be the Name reformatted as sentence casing. Depending on whether the Type is bool, will appear in one of the two generated sentences. Where not bool it will be: Gets or sets a value indicating whether {text}.'. Otherwise, it will be: Gets or sets the {text}.'. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.
By default the ModelText will be the Name reformatted as sentence casing. Depending on whether the Type is bool, will appear in one of the two generated sentences. Where not bool it will be: Gets or sets a value indicating whether {text}.'. Otherwise, it will be: Gets or sets the {text}.'. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.
Defaults to string. To reference a Reference Data Type always prefix with RefDataNamespace (e.g. RefDataNamespace.Gender) or shortcut ^ (e.g. ^Gender). This will ensure that the appropriate Reference Data using statement is used. Shortcut: Where the Type starts with (prefix) RefDataNamespace. or ^, and the correspondong RefDataType attribute is not specified it will automatically default the RefDataType to string.
Overrides the Name to be used for private fields. By default reformatted from Name; e.g. FirstName as _firstName.
Overrides the Name to be used for argument parameters. By default reformatted from Name; e.g. FirstName as firstName.
This is also used to simplify the parameter specification for an Entity Operation by inferrence.
Will be inferred (default to true) where the Type is ChangeLog or the Type is found as another Entity within the code-generation configuration file.
Defaults to UseDefault. This is only applied where the Type is DateTime.
Defaults to UseDefault. This is only applied where the Type is string.
Defaults to UseDefault. This is only applied where the Type is string.
Defaults to UseDefault. This is only applied where the Type is string.
Where the Type is string then the specified default value will need to be delimited. Any valid value assignment C# code can be used.
This will implement IPartitionKey for the generated entity.
This will implement ICacheKey for the generated entity.
In this instance the Property will be excluded from the Common entity declaration and Business JSON serialization.
Defaults to string (being the ReferenceDataBase.Code) where not specified and the corresponding Type starts with (prefix) RefDataNamespace. or ^. Note: an Id of type string is currently not supported; the use of the Code is the recommended approach.
This is required to enable a list of Reference Data values (as per RefDataType) to be passed as an argument for example.
This is used where serializing within the Web API Controller and the ExecutionContext.IsRefDataTextSerializationEnabled is set to true (which is automatically set where the url contains $text=true).Optional indicates when ExecutionContext.IsRefDataTextSerializationEnabled is set to true then a value is output, Always indicates that the value is always output, and Never indicates that feature is turned off.
Mapped properties are a special Reference Data property type that ensure value uniqueness; this allows the likes of additional to/from mappings to occur between systems where applicable.
Defaults to ArgumentName where not specified (i.e. camelCase); however, where the property is ETag it will default to the Config.ETagJsonName.
Defaults to JsonName where not specified.
All properties are serialized by default.
All properties are included in the data model by default.
All properties are included in the data model by default.
Defaults to the property Name. Represents the column name for a Database, or the correspinding property name for the other options.
A Converter is used to convert a data source value to/from a .NET Type where no standard data conversion can be applied. Where this value is suffixed by <T> or {T} this will automatically set Type.
All properties are included by default.
Defaults to Any.
A Mapper is used to map a data source value to/from a .NET complex Type (i.e. class with one or more properties).
Overrides the inferred database type; i.e. can specify Date or DateTime2, for .NET Type System.DateTime.
Defaults to Set.
Defaults to Set.
Defaults to Map which indicates the property will be explicitly mapped. A value of Ignore will explicitly Ignore, whilst a value of Skip will skip code-generated mapping altogether.
Defaults to Set.
Defaults to the Name as sentence case.
The code generation for an Operation is primarily driven by the Type property. This encourages (enforces) a consistent implementation for the standardised CRUD (Create, Read, Update and Delete) actions, as well as supporting fully customised operations as required.
Defaults to Custom.
The Text will be defaulted for all the Operation.Type options with the exception of Custom. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.
This simplifies the specification of these properties as parameters versus having to declare each specifically. Each of the parameters will also be set to be mandatory.
Defaults to the parent Entity.Name where the Operation.Type options are Create or Update.
Defaults to the parent Entity.Name where the Operation.Type options are Get, GetColl, Create or Update; otherwise, defaults to void.
Will be inferred where the ReturnType is denoted as nullable; i.e. suffixed by a ?. Additionally a Type of Get will default to true where not specified.
A default will be created where not specified. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.
Overrides the Name to be used for private usage. By default reformatted from Name; e.g. GetByArgs as _getByArgs.
Defaults to Entity.WilhResult.
Defaults to Entity.AutoImplement. The corresponding Entity.AutoImplement must be defined for this to be enacted. Auto-implementation is applicable for all Operation.Type options with the exception of Custom.
Used where the default generated Mapper is not applicable.
Defaults to Entity.DataExtensions.
Where Dataransaction or EventPublish is Data then orchestration will default to true.
Where using an EventOutbox this is ignored as it is implied through its usage.
Defaults to sp + Entity.Name + Operation.Name; e.g. spPersonCreate.
Overrides the Entity.EntityFrameworkModel.
Overrides the Entity.CosmosModel.
Overrides the Entity.CosmosContainerId.
Overrides the Entity.CosmosPartitionKey.
Overriddes the Entity.ODataCollectionName; otherwise, the underlying Simple.OData.Client will attempt to infer.
This is appended to the Entity.HttpAgentRoutePrefix.
Defaults to Operation.WebApiMethod.
This can be overridden within the Operation(s).
Defaults to Operation.HttpAgentModel where the Operation.ReturnType is equal to Entity.Name (same type). This can be overridden within the Operation(s).
Appended to Entity.HttpAgentCode where specified to extend.
Defaults to Entity.ManagerExtensions.
Defaults to the Entity.Validator where not specified explicitly (where Operation.Type options Create or Update).
Defaults to Entity.ValidationFramework. This can be overridden within the Parameter(s).
The default will be inferred from the Operation.Type; however, where the Operation.Type is Custom it will default to Unspecified.
This can be overridden within the CodeGeneration and Entity.
Full indicates the logic is fully customized (only invocation is code-generated). Partial indicates combination of surrounding code-generation with final custom invocation versus data-layer. None indicates data-layer invocation with no custom invocation (default).
Where DataSvcTransaction or EventPublish is DataSvc then the orchestration will default to true.
Defaults to Entity.ManagerExtensions.
Defaults to the Entity.EventPublish configuration property (inherits) where not specified. Used to enable the sending of messages to the likes of EventGrid, Service Broker, SignalR, etc.
The event value is automatically inferred where the Operation.Type is Create, Update or Delete.
Defaults to Entity.EventSource. Note: when used in code-generation the CodeGeneration.EventSourceRoot will be prepended where specified. To include the entity id/key include a {$key} placeholder (Create, Update or Delete operation only); for example: person/{$key}. Otherwise, specify the C# string interpolation expression; for example: person/{r.Id}.
The event subject template defaults to {AppName}.{Entity.Name}, plus each of the unique key placeholders comma separated; e.g. Domain.Entity.{id1},{id2} (depending on whether Entity.EventSubjectFormat is NameAndKey or NameOnly). The event action defaults to WebApiOperationType or Operation.Type where not specified. Multiple events can be raised by specifying more than one subject/action pair separated by a semicolon. E.g. Demo.Person.{id}:Create;Demo.Other.{id}:Update.
Where the value is specified with a leading ! character this indicates that the Entity.WebApiRoutePrefix should not be used, and the value should be used as-is (with the ! removed).
Where not specified no attribute output will occur; it will then inherit as supported by .NET.
The value defaults as follows: HttpGet for Operation.Type value Get or GetColl, HttpPost for Operation.Type value Create or Custom, HttpPut for Operation.Type value Update, and HttpDelete for Operation.Type value Delete. An Operation.Type value Patch can not be specified and will always default to HttpPatch.
The value defaults as follows: OK for Operation.Type value Get, GetColl, Update, Delete or Custom, Created for Operation.Type value Create.
The value defaults as follows: NotFound for Operation.Type of Get, Update, Patch; NoContent for Operation.Type of GetColl; otherwise, none. A value of none indicates that there is no alternate status.
This uses similar formatting to the WebApiRoute. The response value is accessed using r. notation to access underlying properties; for example {r.Id} or person/{r.Id}. The Entity.WebApiRoutePrefix will be prepended automatically; however, to disable set the first character to !, e.g. !person/{r.Id}. The URI can be inferred from another Operation by using a lookup ^; for example ^Get indicates to infer from the named Get operation (where only ^ is specified this is shorthand for ^Get as this is the most common value). The Location URI will ensure the first character is a / so it acts a 'relative URL absolute path'.
This provides an alternative where the underlying data source does not natively support optimistic concurrency (native support should always be leveraged as a priority). Where the Operation.Type is Update or Patch, the request ETag will be matched against the response for a corresponding Get operation to verify no changes have been made prior to updating. For this to function correctly the .NET response Type for the Get must be the same as that returned from the corresponding Create, Update and Patch (where applicable) as the generated ETag is a SHA256 hash of the resulting JSON. Defaults to Entity.WebApiConcurrency.
Defaults to Get. Specify either just the method name (e.g. OperationName) or, interface and method name (e.g. IXxxManager.OperationName) to be invoked where in a different YyyManager.OperationName.
Defaults to Update. Specify either just the method name (e.g. OperationName) or, interface and method name (e.g. IXxxManager.OperationName) to be invoked where in a different YyyManager.OperationName.
Defaults to the Common type. A value of None, none or `` will ensure no type is emitted.
Overrides the Entity.WebApiTags; unless, if the first tag value is a ^ then this indicates that the Entity.WebApiTags are to be included (inherited) as a replacement. Otherwise, defaults to Entity.WebApiTags.
Is a shorthand means for setting all of the other Exclude* properties to true.
gRPC support is an explicit opt-in model (see CodeGeneration.Grpc configuration); therefore, each corresponding Entity, Property and Operation will also need to be opted-in specifically.
The Parameter object defines an Operation parameter and its charateristics.
By default the Text will be the Name reformatted as sentence casing. To have the text used as-is prefix with a + plus-sign character.
Defaults to string. To reference a Reference Data Type always prefix with RefDataNamespace (e.g. RefDataNamespace.Gender) or shortcut ^ (e.g. ^Gender). This will ensure that the appropriate Reference Data using statement is used. Shortcut: Where the Type starts with (prefix) RefDataNamespace. or ^, and the correspondong RefDataType attribute is not specified it will automatically default the RefDataType to string.
Where the Type is string then the specified default value will need to be delimited. Any valid value assignment C# code can be used.
Overrides the Name to be used for private fields. By default reformatted from Name; e.g. FirstName as _firstName.
Overrides the Name to be used for argument parameters. By default reformatted from Name; e.g. FirstName as firstName.
Defaults to string where not specified and the corresponding Type starts with (prefix) RefDataNamespace..
This is required to enable a list of Reference Data values (as per RefDataType) to be passed as an argument for example.
Defaults to Operation.ValidationFramework.
Defaults to All. To further describe, All passes the parameter through all layeys, ToManagerSet only passes the parameter to the Manager layer and overrides the same named property within the corresponding value parameter, ToManagerCollSet only passes the parameter to the Manager layer and overrides the same named property within the corresponding value collection parameter. Where using the PrimaryKey option to automatically set Parameters, and the Operation.Type is Create or Update it will default to ToManagerSet.
A Converter is used to convert a data source value to/from a .NET Type where no standard data conversion can be applied. Where this value is suffixed by <T> or {T} this will automatically set Type.
Defaults to FromQuery; unless the parameter Type has also been defined as an Entity within the code-gen config file then it will default to FromEntityProperties. Specifies that the parameter will be declared with corresponding FromQueryAttribute, FromBodyAttribute or FromRouteAttribute for the Web API method. The FromEntityProperties will declare all properties of the Entity as query parameters.An AcceptsBody indicates that the value will be passed in the HTTP Request Body and be handled (JSON deserialized) as a CoreEx.AspNetCore.WebApis.WebWebApiParam (default behavior for a Create or Update operation type).
By default the WbeApiText will be the Name reformatted as sentence casing. To have the text used as-is prefix with a + plus-sign character.
The Const object is used to define a .NET (C#) constant value for an Entity.
The code generation will ensure the value is delimited properly to output correctly formed (delimited) .NET (C#) code.
By default the Text will be the Name reformatted as sentence casing. It will be formatted as: Represents a {text} constant value. To create a <see cref="XXX"/> within use moustache shorthand (e.g. {{Xxx}}). To have the text used as-is prefix with a + plus-sign character.