Wishlist

Hi,

here are some features I wish to see in one of the next releases of Aurelius:
* Possibility to update the changes of a single object in database. Optionally the method should update all objects referenced by this object and all objects referencing this object.
* Possibility to reload a single object from database;
* After creating an object from database, Aurelius should look for a procedure called "Loaded" in RTTI and call it.
* Possibility to handle the object-creation by an event of ObjectManager.
* Support for GUID
* Support for Devart IBDAC
* Possibility to remove an object from automatic object-management without removing it from the database
* Possibility to copy an object

Regards,
Michael

Hi,


* Possibility to update the changes of a single object in database. Optionally the method should update all objects referenced by this object and all objects referencing this object.

Not sure if I understood this? From what I understood, Aurelius already supports this.

* Possibility to reload a single object from database;

What if the object has changed in memory? You could use a different object manager for that? Maybe this feature will be covered by your request "remove object from automatic object-management"?

* After creating an object from database, Aurelius should look for a procedure called "Loaded" in RTTI and call it.

Agree with the need, not with implementation. Maybe some event OnAfterLoad or something like that, so you call it yourself when an object is loaded?

* Possibility to handle the object-creation by an event of ObjectManager.

How is this supposed to work? What's the intention?

* Support for GUID

In our todo list.

* Support for Devart IBDAC

We have already asked Devart for IBDAC source code license. No response so far after many weeks. Can't do much more than that.

* Possibility to remove an object from automatic object-management without removing it from the database

Good suggestion.

* Possibility to copy an object

Have you seen the Merge method? What would be the purpose of this?


Hi,

* Possibility
to update the changes of a single object in database. Optionally the
method should update all objects referenced by this object and all
objects referencing this object.
Not sure if I understood this? From what I understood, Aurelius already supports this.

Aurelius currently supports the fluth-method to update objects in database. But the method updates all changed objects. What I mean is that I can load ObjectA and ObjectB from the DB, change both Objects but save only ObjectA (and of couse all changed objects referenced by ObjectA)

* After creating an object from database, Aurelius should look for a procedure called "Loaded" in RTTI and call it.
Agree
with the need, not with implementation. Maybe some event OnAfterLoad or
something like that, so you call it yourself when an object is loaded?

Even this implementation is OK. Another one could be, that an object can support a specific interface with a loaded-procedure.

* Possibility to handle the object-creation by an event of ObjectManager.
How is this supposed to work? What's the intention?

The intention is nearly the same as in the upper point: To get more control ob object-handling.
An implementation could be an OnObjectCreate-event like this:
TObjectCreateEvent = procedure(Sender: TObject; ObjectClass: TClass; var NewObject: TObject) of object;

* Possibility to copy an object
Have you seen the Merge method? What would be the purpose of this?

What I mean is a possibility to copy an object with all of it's values, without adding it to the database. So the result is an non-persistent object which could be added to a second ObjectManager with a connection to a different database.

"Passing by" this post, I feel like giving a specific follow up here:

Possibility to update the changes of a single object in database. Optionally the method should update all objects referenced by this object and all objects referencing this object.
It's possible now by using Manager.Flush(Object);

Possibility to reload a single object from database;
It's possible now by using Manager.Refresh(Object);

Possibility to handle the object-creation by an event of ObjectManager.
You can use the ObjectFactory concept (http://www.tmssoftware.biz/business/aurelius/doc/web/object_factory.html)

Support for GUID
Added

Support for Devart IBDAC
Not in official distribution but we provide the driver through e-mail for users who ask for it.

Possibility to remove an object from automatic object-management without removing it from the database
Possible now with Manager.Evict(Object);

Possibility to copy an object
This can be done by yourself using RTTI, nevertheless you can use undocumented function TMappingExplorer.CopyFieldValues

Wagner R. Landgraf2016-11-10 12:24:38