Today we've released LLBLGen Pro v5.8 Beta! We've added some great new features and did a lot of refactoring behind the scenes.
What's new in the LLBLGen Pro Designer
Major changes / fixes / new features
- Clone functionality for projects. The LLBLGen Pro Designer now offers a managed way to create clones of the active project to create a new working copy of the active project to e.g. try things out without worrying where to roll back to when something doesn't turn out to be ok. Project clones remember their parent and are managed in a tree, where a clone of project X is shown as a child of X. More information
- Local sync source overrides. It's now possible to locally override sync sources set on a per-schema level, so every team member can specify their own sync source for a schema. This allows one team to use both model first and database first on the same schema without manually changing sync sources for every sync. More information
- Entity Framework Core 5 support. The LLBLGen Pro Designer now supports Entity Framework Core 5 on .netstandard 2.1. More information
- Oracle via ODP.NET is now a supported database for Entity Framework Core 3.x+. Oracle using ODP.NET is now supported on Entity Framework Core 3.x and later. Please consult the Entity Framework documentation for LLBLGen Pro for the details regarding mappings.
Minor changes / fixes / new features
- Right-clicking an element in a derived element in the project explorer allows you to navigate to its source, be it an entity, value-type, navigator or entity field.
- The derived element editor's selector pane now has a relationship viewer which shows the relationship of the navigator selected so it's easier to make the right decision which navigator to use. This relationship viewer is collapsible if the user doesn't need the viewer.
- Firebird: If the database version is v3 or higher, a system sequence,
SQL$DEFAULT, is added to be used with identity fields.
- Firebird: Identity fields are now properly recognized as such. They get as sequence the
- Firebird: Stored procedures within packages are now recognized as such and their names are preceded with the package name. So if a stored procedure Foo is in a package Bar, the name of the stored procedure will be Bar.Foo. This is equal to how stored procedures in packages are supported for Oracle.
- Oracle ODP.NET: JSon is now a suppported type on Oracle databases
- Oracle ODP.NET: Types which aren't recognized, e.g. user defined types like
SDO_GEOMETRY usually caused the whole table to be rejected. We now convert them to 'NotSupportedUserDefinedType', with has as .net type Object, and as provider type, 'Object'. The table won't be rejected this way, mappings will fail at runtime if the user maps the field with the rejected type. The user can then decide to delete the field from the entity/element.
What's new in the LLBLGen Pro Runtime Framework
New functionality / changes
- Dependency Injection support for other DI frameworks. It's now possible to use other dependency injection frameworks, like the one built-in into asp.net core, to inject validators, authorizers and the like into entities without any extra effort. More information
- The Default SQL Server compatibility level is now set to 2012.
- Json is now a supported type on Oracle databases. (Results in System.String)
- Alias names in queries for Firebird are now clamped to 30 characters to avoid the restriction that's been added to Firebird 3. This clamping is done by creating a unique alias, like what's been used on Oracle and DB2.
- It's now easier to extend the
TypeDefaultValue class: a new partial method has been added which can be implemented in a partial class:
- QuerySpec now has extension methods to produce
IExpression objects from fields, for the operations Mul, Div, Add, Sub, And, Or, BitwiseAnd, BitwiseOr, BitwiseXor, Mod.
- On Oracle the operators BitwiseAnd/Or/Xor are now supported in field expressions
- On Firebird stored procedures within packages are now supported
- On Firebird the system sequence
SQL$DEFAULT is now supported
- SelfServicing's Transaction class and Adapter's DataAccessAdapter class now have a
CommitAsync method. This is effectively the same as the synchronous
Commit method, however it will now persist audit entities asynchronously instead of synchronously. The Unit of Work's
CommitAsync() method will call this
CommitAsync method now as well.
- Selfservicing specific: Two protected virtual methods are added to the
OnMultiEntityLazyLoading. These methods are called at the start of the lazy loading action and do nothing, but can be used to get notified when lazy loading occurs, e.g. for when tracking down lazy loading actions when migrating to Adapter or when optimization work is performed.
- When an entity has been deleted, it no longer ends up in an Update queue
How to get the bits?
If you have an active subscription, please go to 'My Account' in the menu and in the v5.8 download section, you'll find the LLBLGen Pro v5.8 beta installer.
For feedback/bug reports, please open a new thread in the Beta forum
Enjoy and stay safe!