We are Using DevEx - Grids with their given Master-Detail solution combined with an AureliusDataset.
As I got from documentation, Master-Detail works using the "Entity-Fields" in the Dataset.
DevEx-Solution would like to set die ID-Fields immediately, like Lookup-Fields do.
Is there any Solution, or has anybody best-practices for this features combined?
TAureliusDataset is just a regular dataset. It should work with any data-aware control that support datasets. DevEx grids probably don't mind about the type of dataset that it works with.
So you can setup TAureliusDataset and use it normally. Master-detail in Aurelius dataset is implemented via dataset fields. Associations are provided via entity fields. Those are different things.
We implemented Master-detail via dataset fields.
But as described in dataset fields
the given "ItemsDataset.DatasetField" is using "Items", not ItemsId.
Taking a look at your MusicLibrary-Demo, there is the same solution, by using
adsAlbums.Tracks as DatasetField for adsTracks in AlbumsForm.
So TAlbum.Tracks will create a Field called AlbumId on TTrack.
DevEx Master-Detail mode would like to set the ID on the Detail-Dataset for getting more performance.
As I understood your demo works using the Self-Field by adding the Detail-Dataset to Masters-List.
I don't understand, what would be ItemsId? The name of the property is Items, and it holds a full dataset with the detail data.
I think you are mixing SQL/data in database, with the objects. The Aurelius dataset binds the objects to the data aware control. TAlbum.Tracks is a list of TTrack objects. It doesn't "create a field called AlbumId".
"ItemsId" is the column in Database, that is also accessible via Explorer.GetColumns.
You are right by saying "I think you are mixing SQL/data in database, with the objects."
But I did that on purpose.
DevEx just want to update the necessary IDs.
This does not work with AureliusDataset, because the necessary ID-Fields could not be written.
That's of course, because AureliusDataset uses the EntityClass-Properties and the given Manager (if attached) will persist it to the database.
I think we are not the first one using Aurelius combined with DevEx, so I hope, that anybody of the community could give some Ideas.