Prefisso tabella globale con Entity Framework 7 (rc1)

asp.net-core c# entity-framework entity-framework-core

Domanda

Stiamo utilizzando la versione RC1 di ASP.NET 5 con il nuovo Entity Framework 7 e mi piacerebbe che i nomi delle tabelle nel database fossero preceduti dal nome dello spazio dei nomi in cui il modello vive.

So come farlo nella versione precedente di Entity Framework (grazie a questa domanda SO ) ma non riesco a capire come fare lo stesso nella nuova versione. Ho esaminato i documenti, ho cercato su Google e ho inserito la mia mente nel codice sorgente, senza risultato.

Cosa faccio in EF6:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Types().Configure(entity => entity.ToTable($"{entity.ClrType.Namespace?.Replace('.', '-')}_{entity.ClrType.Name}s"));

    base.OnModelCreating(modelBuilder);
}

Come posso fare lo stesso con EF7? È questa una delle cose che non sono ancora lì dentro forse?

Risposta accettata

Fallo alla fine di OnModelCreating manipolando direttamente il modello:

foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
    entity.Relational().TableName =
        $"{entity.ClrType.Namespace?.Replace('.', '-')}_{entity.ClrType.Name}s";
}

Risposta popolare

Ad oggi, Dic, 9, 2015, il problema delle convenzioni personalizzate EF7 è ancora aperto:

https://github.com/aspnet/EntityFramework/issues/214

Se visiti quel link, puoi approfondire ulteriori dettagli.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché