29 messaggi dal 07 settembre 2006
Ciao a tutti,

mi trovo davanti ad un problema che non so bene come gestire essendo alle prime arm con EF (non versione 4)...

...ho le seguenti entità: CATEGORIE, LIBRI e AUTORI legate nel seguente modo con 2 relazioni molti a molti:

Tab: LIBRI_AUTORI -> ID_LIBRO - ID_AUTORE

Tab: CATEGORIE_LIBRI -> ID_CAT - ID_LIBRO

e fin qui tutto ok... ora ho la necessità di introdurre il campo PRIORITA' nei libri (che sarà semplicentente un numero 1,2,3,4 ecc.) ma il problema è che deve essere anche gestito a livello di categoria, quindi mi troverei in una situazione di questo tipo:

PRIORITA_LIBRI_CAT_AUTORI -> ID_LIBRO - ID_AUTORE - ID_CAT - VALORE_PRIORITA

in poche parole dovrei unire le 2 relazioni precedenti e aggiungere un valore priorità che servirà sostanzialmente a dare un ordine ai LIBRI di un AUTORE ma questo ordine può essere diverso per ciascuna CATEGORIA in quanto un libro può appartenere a più CATEGORIE.

Ora non so come gestire l'introduzione di questo campo PRIORITA' a livello di EF.

Grazie

PS: in realtà non sono AUTORI e LIBRI ma il concetto è lo stesso.
Modificato da ZetaSharp il 07 luglio 2010 16.35 -
Ciao, purtroppo quando ti trovi ad aggiungere un attributo (nel tuo caso la priorità) ad una relazione, non puoi usare più la many to many, ma devi realizzare una entity apposita.

m.
29 messaggi dal 07 settembre 2006
Lo sospettavo... ok farò così allora... grazie mille!!! :)

PS: per cusiosità anche con EF 4 è così?
E' così con tutto, nel senso che la tabella di relazione in una many-to-many, che gli ORM solitamente riescono a "nascondere" con le due collection, in realtà se aggiungi attributi come la priorità, non è più una semplice tabella di relazione, ma diventa una entity (o un value object, nell'accezione del domain driven design) a tutti gli effetti, e pertanto ha bisogno di una corrispondente classe C#

Pensa che anche con NHibernate è così!

Difatti io non consiglio mai di "nascondere" questi elementi, bensì ritengo sia preferibile creare una classe ad-hoc sin dall'inizio, altrimenti se poi devi aggiungere una proprietà, come nel tuo caso, la modifica sul codice diventa proprio impattante.

m.
Modificato da Cradle il 08 luglio 2010 13.46 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.