Represents the NuGet versions.
- Fixed: Issue 57 fixed. The redundant
?? null
for the property set on an entity with a reference data collection has been removed. - Fixed: Tidied up the entity code-gen for the
Equals
method.
- Enhancement: Generate a new
ModelBuilderExtensions.AddGeneratedModels
to simplify the adding of the generated models to theModelBuilder
(Entity Framework).
- Fixed: Code-gen templates updated to correct additional warnings identified by FxCop. Where no direct fix, or by intention, these have been explicitly ignored.
- Fixed: Code-gen templates updated to correct warnings identified by FxCop. Where no direct fix, or by intention, these have been explicitly ignored.
- Enhancement:
PropertyConfigLoader
updated to default theDateTimeTransform
,StringTransform
andStringTrim
enum selections to the newUseDefault
value.
- Enhancement: Added
Config.EventSubjectRoot
attribute used by theDataSvc
code generation that provides the root for the event name by prepending to all event subject names.
- Enhancement: The
DataSvc
code generation updated to use the newEvent
methods as existing have been obsoleted. - Enhancement: Added
Property.WebApiQueryStringConverter
attribute to enableType
tostring
conversion for writing to and parsing from the query string. - Enhancement: Shortcut added where the
Type
attribute for theProperty
element starts withRefDataNamespace.
(e.g.Type="RefDataNamespace.Gender"
) and the correspondingRefDataType
attribute is not specified it will default tostring
. - Enhancement: Shortcut added where the
DataConverter
attribute for theProperty
element ends with{T}
(e.g.DataConverter="ReferenceDataNullableGuidIdConverter{T}"
) and the correspondingIsDataConverterGeneric
attribute is not specified the{T}
will be removed and theIsDataConverterGeneric
will default totrue
. - Enhancement: Added
Operation.AuthRole
andEntity.AuthRole
attributes to enableExecutionContext.IsInRole(role)
checking.
- Fixed: Fix to include the
Beef
namespace for theReferenceDataProvider.PrefetchAsync
capability.
- Fixed: Fix for
ReferenceDataProvider.PrefetchAsync
to leverage the newExecutionContext.FlowSuppression
.
- Fixed: Fix for
EntityData
code generation;DataName
was not always being output where usingDatabase
. - Enhancement: Added
Config.EventActionFormat
to control the formatting of the event action text.
- Fixed: Fix for
EntityDataSvc
code generation; internal caching was being accidently skipped for custom operation types.
- Enhancement: Added code-generation templates and configuration for gRPC support.
- Fixed: A null reference would occur where using a custom operation type and the resulting value is
null
. Code generation has been amended to support nullable return types (e.g.Person?
) to allow.
- Enhanced: Added
IEquatable<T>
implementation to the entity code generation. Enables support for full property, sub entity and collection equalityEquals
checking andGetHashCode
calculation.
- Enhancement: Code generation enhanced to support new approach to OData.
- Enhancement: New
Entity.JsonSerializer
attribute added to control the entity/property serializer used. Currently supportsNone
orNewtonsoft
.
- Fixed:
ReferenceDataData
code generation for Cosmos DB was generating invalid code where the entity had addtional properties which has been corrected. - Fixed:
ReferenceDataServiceAgent
andReferenceDataAgent
code generation where aRefDataNamespace
is defined. - Enhancement: Updated all dependent NuGet packages to their latest respective version.
- Upgrade: Upgraded the project to .NET Standard 2.1 (compatible with .NET Core 3.1).
- Enhancement: Tool updated to execute asynchoronously. Both
CodeGenConsole
andCodeGenConsoleWrapper
have breaking change;Run
has been removed, replaced withRunAsync
. - Enhancement: The templates where database access is performed have been updated to leverage the new asynchronous methods. All previous synchronous access has been removed.
- Enhancement: All C# templates (e.g.
Entity_cs.xml
) have been updated to support nullable reference types (https://devblogs.microsoft.com/dotnet/embracing-nullable-reference-types/). - Enhancement: The entity code-generation (
Entity_cs.xml
) will output all reference types as nullable unless overridden explicitly for aProperty
element usingNullable="true|false"
.
- Fixed: Code-gen of corresponding reference data text (
xxxText
) was being incorrectly output where the property supported multiple values (RefDataList="true"
).
- Fixed: Code-gen of the data access for
Cosmos
will default theCosmosEntity
attribute where not specified. - Fixed: Code-gen for a custom
DataSvc
was incorrectly outputting anOnAfterAsync
method invocation; see Avanade#15.
- Enhancement: Sprinkled
Task.ConfigureAwait(false)
as per https://devblogs.microsoft.com/dotnet/configureawait-faq/. Templates also updated to ensure code-generated output complies.
- Fixed:
ISNULL
forIsDeleted
in OrgUnit permission check for Get and Update stored procedures.
- Fixed: Reference Data Controller code-gen now uses
StringComparison.InvariantCultureIgnoreCase
for the string comparison. - Fixed: Entity Framework model code-gen uses property expressions versus property names as strings.
- Fixed: Introduced FxCop Analysis to
Beef.CodeGen.Core
; this version represents the remediation based on the results.
- Fixed: Manager code-gen output fixed where
OperationType="GetColl"
andManagerCustom="true"
; a comma is now placed between the parameters correctly.
- Fixed: Entity code-gen updated to override AcceptChanges and TrackChanges to support change tracking through the entity object graph. There are required changes within
Beef.Core
to enable.
- Added: Code-gen of the data access for
Cosmos
adds a new method_onDataArgsCreate
that is invoked each time aCosmosDbArgs
is created.
- Added: Code-gen attribute
RefDataText=true|false
has been added toConfig
,Entity
andProperty
elements. Where set to true for a reference data value a corresponding propertyxxxText
will be created. This will only be populated during serialization whenExecutionContext.IsRefDataTextSerializationEnabled
is set totrue
. - Fixed: Optimised the reference data
Controller
code-gen including correspondingETag
value.
- Fixed: Incorrect end-point generated for Reference Data Service Agent.
- Fixed: Consolidated the
/ref
and/ref/codes
endpoints into/ref
. Supports list of names as per previous, as well as the new specified entity+code, within the query string.
- Added: Reference data updated to support multiple run-time providers, versus the previous single only. A new
IReferenceDataProvider
enables a provider to be created. The underlying code-gen templates have been updated to enable. - Fixed: Code-gen for the database where
IsDeleted
is used will performISNULL(IsDeleted, 0) = 0
to check for null or zero as not-deleted.
- Fixed: Optimisations made to the entity code generation for reference data so that internal operations use the property serialization identifier (SID); otherwise, was resulting in unecessary reference data loads.
- Fixed: Database merge statements updated to include
AND EXISTS (...)
for aWHEN MATCHED
to avoid updates where column data has not changed.
- Fixed: Code-gen
Entity.DataCosmosMapperInheritsFrom
not generating correctly.
- Fixed: Code-gen
Entity.DataCosmosValueContainer
not generating correctly. Added support forOperation.DataCosmosValueContainer
to override. - Fixed: Code-gen for the private
Data
variables are nowreadonly
as they are only intended for update within the constructor. Will remove corresponding compiler warnings.
- Fixed: Code-gen of
Entity.cs
outputs incorrectusing
statement whenEntityScope="Business"
is used.
- Added: New
DataModel
code generation support has been added to enable the specification and generation of back-end only data model entities.
- Fixed: The
Entity.DatabaseName
,Entity.EntityFrameworkName
,Entity.CosmosName
are now being honoured when generating for reference data. - Enhancement: A new
Entity.OmitEntityBase
attribute is now supported in the code-generation to omit the output of theEntityBase
inherited capabilities.
- Enhancment: Cosmos code-generation enhancements to support changes to
CosmosDb
implementation.
- Enhancment: Additional code-generation enhancements to support the auto-implements of Cosmos DB data access.
- Enhancement: An invocation with an
If-Match
will override the value where it implementsIEtag
as this should take precedence over the value inside of the value itself viaWebApiActionBase.Value
. Code-gen has updated to take advantage of this; next gen will introduce usage withinXxxApiController
classes.
- Enhancement:
ReferenceDataData_cs.xml
template updated to supportAutoImplement="EntityFramework"
to simplify the loading of reference data items where using Entity Framework.
- Enhancement: Added
WithHints
to stored procedure configuration to outputWITH(value)
table hint. - Enhancement: Added support to generate data logic access using Cosmos DB. This follows the same pattern as Database, OData and EntityFramework.
- Fixed:
IEntityData
code-gen did not correctly output the value type. - Enhancement: Added code-gen support for snake_case and kebab-case.
- Fixed:
InvokerBase
was non functioning as a generic class; reimplemented. Invoker invocation code generation updated accordingly.
- Fixed: FromBody not applied to
ServiceAgent
code generation.
- Fixed:
CodeGenConsoleWrapper
was supporting database generation by default.
- Fixed: Inconsistent version numbers.
- New: Initial publish to GitHub.