Desidero implementare la struttura gerarchica dei dati (ad esempio Prodotto -> Prodotto 2 ----> Prodotto3, Prodotto 2 ----> Prodotto4) utilizzando il primo approccio al codice 6 dell'entità framework. Ci sono diversi approcci disponibili ma penso che l'approccio alla tabella di chiusura sia in grado di soddisfare tutti i miei requisiti. Qualcuno può guidarmi come implementare l'approccio alla tavola di chiusura nell'entità quadro 6 in modo efficiente o in qualsiasi altra alternativa?tabelle di chiusura con framework entità 6
7
A
risposta
2
quello che vi serve è una relazione molti-a-molti con un'entità stesso: Per esempio:
public class SelfReferencingEntity
{
public SelfReferencingEntity()
{
RelatedSelfReferencingEntitys = new HashSet<SelfReferencingEntity>();
OtherRelatedSelfReferencingEntitys = new HashSet<SelfReferencingEntity>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SelfReferencingEntityId { get; set; }
public string Name { get; set; }
public decimal Cost { get; set; }
public virtual ICollection<SelfReferencingEntity> RelatedSelfReferencingEntitys { get; set; }
public virtual ICollection<SelfReferencingEntity> OtherRelatedSelfReferencingEntitys { get; set; }
}
ed è necessario eseguire l'override OnModelCreating metodo DbContext per sostenere i molti-molti auto riferimento simile al seguente:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<SelfReferencingEntity>()
.HasMany(p => p.RelatedSelfReferencingEntitys)
.WithMany(p => p.OtherRelatedSelfReferencingEntitys)
.Map(m =>
{
m.MapLeftKey("SelfReferencingEntityId");
m.MapRightKey("RelatedSelfReferencingEntityId");
m.ToTable("RelatedSelfReferencingEntity", "");
});
}
V'è un bel esempio completo ampiamente descritto nel capitolo 6.3 del libro Entity Framework 6 Recipes che risolve questo problema e rapporto transitivo (rapporto che si estende su più livelli) e il suo codice è disponibile per il download tramite il link che ho citato.
Problemi correlati
- 1. Salva entità distaccata in Entity Framework 6
- 2. Entity Framework 6 (codice prima) versioning e auditing di entità
- 3. Nome tabella dinamico con framework entità
- 4. Eccezione DBConcurrency con Entity Framework 6
- 5. SQLAlchemy supporta "tabelle di chiusura?"
- 6. Aggiornamento datatable a più tabelle nel framework entità
- 7. Entity Framework 6 DBContext con solo un sottoinsieme di tutte le tabelle
- 8. Entity Framework 6 non crea tabelle nel database SQLite
- 9. Entità Framework POCO Entità nell'applicazione web multistrato
- 10. Entity Framework - Aggiungi entità figlio
- 11. Django ORM e Tabelle di chiusura
- 12. Entità di ibernazione senza tabelle sottostanti
- 13. Entity Framework 6 - Tabella mancante con solo chiavi primarie che fanno riferimento a tabelle diverse
- 14. Salvataggi frequenti con il framework entità
- 15. Entity Framework 6 e collezioni
- 16. come ordinare (organizzare) le tabelle del modello di database del framework di entità in Visual Studio?
- 17. Ereditarietà di tabelle per tipo di calcestruzzo (TPC) in Entity Framework 6 (EF6)
- 18. Xcode 6 Playground con framework Parse?
- 19. Oracle ODP.Net con Entity Framework 6 - Impossibile trovare il provider compatibile di database framework Entity
- 20. Unione di tabelle da due database utilizzando il framework di entità
- 21. Entity Framework 6 e sequenze SQL Server
- 22. Codice quadro entità Prime tabelle plurali di MySql
- 23. Mappatura di dati da 2 tabelle a 1 entità - Entity Framework 4
- 24. Mappatura selezione stored procedure nel framework entità
- 25. Entity Framework 6 Codice Prima personalizzato
- 26. uno a molti in Entity Framework 6
- 27. Esecuzione di sql nel framework di entità?
- 28. Utilizzo di framework entità su più database
- 29. Come utilizzare il framework di entità con i dati gerarchici?
- 30. Framework di entità con ereditarietà, condizioni e chiave esterna
Mi sembra che tu abbia semplicemente bisogno di una classe ProductHierarchy con una proprietà di elenco children. Quali requisiti ritieni non sarebbero stati soddisfatti? –