Sto cercando di capire i mapping di ereditarietà in EF4.Entity Framework 4 - Eredità
mio database ha due tabelle con la seguente struttura:
PersonCategory Tabella:
- IDCategoria (int) (identità) (PK)
- CategoryType (nvarchar (50))
Persona Tabella
- PersonID (int) (identità) (PK)
- IDCategoria (FK da tavolo PersonCategory)
- Nome (nvarchar (50))
- Descrizione (nvarchar (max))
PersonCategory table ha quattro voci ciascuna che rappresentano una categoria: Student, CourseInstructor, Staff e Advisor.
Dalla lettura articles online ho pensato Tabella per gerarchia sarà un modello adatto per questo scenario. Quindi in EF4, ho creato quattro entità (Student, CourseInstructor, Staff e Advisor) ciascuna che eredita dalla tabella Person. Ho quindi mappato ciascuno di essi alla tabella Persona e ho aggiunto una condizione a ciascuno (ad esempio IDCategoria = 1 per Entità studente e IDCategoria = 2 per l'entità Staff) per differenziarli dagli altri. Ho anche rimosso la proprietà CategoryID dalla tabella Person e l'ho resa astratta. Ma sto ottenendo il seguente errore perché ho cancellato la proprietà CategoryId dalla tabella Persona.
Errore 3015: Problema in frammenti di mappatura a partire dalle linee 101, 108, 114, 120, 126, 133: vincolo di chiave esterna '' FK_Person_PersonCategory da persona tavolo (IDCategoria) a tavolo PersonCategory (CategoryID) :: mappatura insufficiente : La chiave esterna deve essere associata ad alcuni AssociationSet o EntitySet che partecipano a un'associazione di chiavi esterne sul lato concettuale.
Tabella per gerarchia è un modello adatto per questo scenario? Altrimenti, come devo affrontare questo scenario in EF4?
Grazie per il puntatore. Capisco il punto spiegato. Devo interpretare questo come EF4 non può gestire questa situazione? Perché nel modello di entità della mia applicazione voglio che entrambe le tabelle siano presenti con un'associazione. Come potrei avvicinarmi a questo scenario? – muruge