Multi Model - Design Question

Hi + tx for support!

I have a legacy DB and want to use Arelius for some new tasks. I have to create new tables and need to read the existing data. As I do not need all fields of the existing tables, I created entities with part of the existing fields only. 

I am unsere what the SchemaManager will do, if I let him create the new tables. Will he also try to delete the missing columns of the existing tables? (I know the the Schmeamanager is non destructive!)

If I use Models - one for the new tables, one for the existing ones - would this do the trick and not try to touch the existing tables?


No, it will never try to delete missing columns. It will just report "errors" after updating, as described here: http://www.tmssoftware.biz/business/aurelius/doc/web/schema_validation.html


You can also use models, yes, to better organize this. But in any case, Aurelius will not remove tables or fields from the database.
Some more questions + tx for every Input. :- )

I have to entities, EnityA and EntityB. B belongs to a legacy DB and do not want to have it changed. A is a new table in this DB and i want it to be managed by Aurelius.
So I set A to model A and B to model B.

TDBSchema can handle both models, but I set it to model A, because changes are only allowed here.
However, TAureliusModelEvents and TAureliusManager can only handle one model.
So to monitor the Events of my DB i have to use two TAureliusModelEvents, one for each model?

The same is for reading from the DB, I need a manager for every model, right?
Is this ok or am I missing something?

Do the opposite way. You can flag an entity with multiple models. Thus, flag your EntityA with model "A" and "Default". 

When using TDBSchema, use model "A". When using TAureliusManager, use no model (empty string), or model "Default" which are the same. It means the manager will see entities A and B (entity B is also in model "Default", if no model is added there).
Ah! I see. Tx a lot!

I appreciate your support.
Unfortunately this does not work. I have
type
  TTBLLEBENSMITTEL = class;
  [Entity]
  [Model('BLS')]
  [Table('TBLLEBENSMITTEL')]
  [Id('FHERKUNFTCD', TIdGenerator.None)]
  [Id('FLEBENSMITTELCD', TIdGenerator.None)]
  TTBLLEBENSMITTEL = class

and

type
  TTBLXLSImport = class;
 
  [Entity]
  [Model('BLS')]
  [Model('XLSZuordnung')]
  [Table('TBLXLSImport')]
  [Id('FID', TIdGenerator.IdentityOrSequence)]
  TTBLXLSImport = class

Leaving the managers model empty (or Setting it to default) results in:

Im Projekt RezeptSchnittstelle.exe ist eine Exception der Klasse EInvalidEntity mit der Meldung 'Class TTBLXLSImport is not a valid Entity. [Entity] attribute missing.' aufgetreten.

If you leave the model of the manager empty, it means it will use the "Default" model. TTBLXLSImport class only belongs to model BLS and XLSZuordnung. You must either:


- Set manager model to BLS or XLSZuordnung 
or
- Add [Model('Default')] attribute to the TTBLXLSImport class so that it's also visible in default model.