Ho un programma che utilizza il database Entity Framework (EF) prima nel livello di accesso ai dati. So che, per EF per auto-generare le proprietà di navigazione di una relazione molti a molti, la tabella di mapping deve contenere solo una chiave primaria composta:Entity Framework relazione molti a molti con campo aggiuntivo (Database First)
Project
- ProjectId (PK)
- Name
ContentType
- ContentTypeId (PK)
- Name
ProjectContentTypeMapping
- ProjectId (PK)
- ContentTypeId (PK)
In questo caso tutto funziona bene, e posso accedere a Progetti da ContentTypes e viceversa con le proprietà di navigazione.
Tuttavia, è necessario disporre di campi aggiuntivi specifici per la relazione tra progetti e tipi di contenuto e che sarebbero colonne aggiuntive nella tabella ProjectContentTypeMapping. Una volta aggiunti questi, perdo le proprietà di navigazione e EF mostra la tabella di mapping nel designer.
Esiste un modo per configurare manualmente la mappatura tra queste due tabelle in EF (Database First)? In alternativa, come posso rappresentarlo? Stavo pensando di avere forse un tavolo extra "metadati" con un FK alla tabella di mapping, ma sembra "hacky" per me ...
Grazie
Puoi fornire ulteriori informazioni su come manipolare manualmente i mapping? – chuwik
vedere my anser @chuwik –
Non è possibile avere le colonne aggiuntive ma dire a Entity Framework di trattare la tabella come se non fosse così? In qualche modo importa solo due colonne anziché l'intera tabella dal database? Ho bisogno delle colonne aggiuntive nel DB per altri motivi (politica sul posto di lavoro, altre applicazioni che utilizzano lo stesso database), ma la mia applicazione non deve nemmeno esserne a conoscenza. –