Assuming it is, then I see a simple, reasonable, workable architecture.
hmmm maybe - except If you want CustomersBusinessCollection to contain m:CustomerBusiness entities.
I would like to know how you are going to acheive this?
CustomerCollection already contains m:CustomerEntity.
By deriving from CustomerCollection and creating CustomersBusinessCollection you will be inheriting the ancestors properties that already contains m:CustomerEntity.
So when working with the CustomersBusinessCollection's entities you will be bypassing your BL CustomerBusiness entities and working directly with the DL's CustomerEntity.
Example:
DL
CustomerCollection : EntityCollectionBase
| - < CustomerEntity
BL
CustomersBusinessCollection : CustomerCollection
| - < Inherited CustomerEntity (Should these not be BL CustomerBusiness entities?) - This is working directly with DL?
I guess that you want to acheive this...
BL
CustomersBusinessCollection : CustomerCollection
| - < CustomerBusiness
The examples would be the same for entities linking to collections.
DL
CustomerEntity: CustomerEntityBase
| - OrdersCollection
BL
CustomerBusiness : CustomerEntity
| - Inherited OrdersCollection(Should this not be a BL OrdersBusinessCollection?) - This is working directly with DL?
I guess that you want to acheive this...
BL
CustomerBusiness : CustomerEntity
| - OrdersBusinessCollection
I am not sure how you would acheive this.
I might be missing something...
it is nothing new from what Frans explains in his help manual
Where in the manual?
As far as i know you can polymorph upwards to common ancestors not downwards to derived children.
Meaning that you can cast CustomerBusinessEntity as CustomerEntity
but you can't cast CustomerEntity as CustomerBusinessEntity.
Please see 1st reply to MattWoberts
http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=802&StartAtMessage=0