9

Poiché il mio database è stato progettato utilizzando i nomi di tabella e colonna tedeschi, la funzione di pluralizzazione predefinita di Entity Framework non funziona per me.Come personalizzare la pluralizzazione per Entity Framework 5

Ho trovato un paio di risorse in cui questo è discusso, ma nessuno di loro sembra funzionare.

quello che ho trovato: C'è la PluralisationService dove posso aggiungere le mappature:

PluralizationService pluralizer = 
     PluralizationService.CreateService(CultureInfo.GetCultureInfo("en-us")); 
ICustomPluralizationMapping mapping = ps as ICustomPluralizationMapping; 
mapping.AddWord("Tabelle", "Tabellen"); 

Ma che cosa è il prossimo? Ho cercato di:

EntityModelSchemaGenerator generator = new EntityModelSchemaGenerator(container); 
generator.PluralizationService = pluralizer; 
generator.GenerateMetadata(); 

e mettere ciascuno di essi nel mio POCO T4 template. Tuttavia, ha generato la seguente eccezione:

EntityContainer "ContainerName" non è un negozio EntityContainer. Nome del parametro: storeEntityContainer
a System.Data.Entity.Design.EntityModelSchemaGenerator.Initialize (...)
a Microsoft.VisualStudio.TextTemplating ... GeneratedTextTransformation.TransformText()
+0

+1 per l'indagine nella domanda. Ecco come dovrebbero essere poste le domande. Ho faticato con questo problema senza molto successo. – Judo

risposta

0

Sto anche cercando per la stessa cosa Forse this può aiutare. Non sono disposto a pagare per una funzionalità così elementare.

EDIT:

Il codice che hai postato deve essere utilizzato con EdmGen2 Quale vi darà CSDL, SSDL o file MSL pluralizzato in base alla classe.

0

Per personalizzare completamente i nomi delle tabelle in EF Codice primo luogo, è possibile utilizzare l'attributo Table per specificare esplicitamente il nome della tabella associata con una classe:

[Table("InternalBlogs")] 
public class Blog 
{ 
    //... 
} 
0

Una vecchia questione, ma se qualcuno è Sto ancora cercando un possibile flusso di lavoro/soluzione:

Ho avuto un problema simile in cui volevo personalizzare l'importazione dello schema (CSDL) dal database. La soluzione/flusso di lavoro è stato il seguente:

  1. distribuito lo schema del database (io ho usato Visual Studio database di progetto VS 201x) per un database locale
  2. importato il modello di database utilizzando EDMGEN per creare il CSDL, SSDL e MSDL file http://msdn.microsoft.com/en-us/library/vstudio/bb387165(v=vs.110).aspx
  3. Modificato EDMGEN2 con le mie modifiche su come gestire pluralizzazione e la denominazione con regole personalizzate e ha creato il file EDMX
  4. Ran i modelli T4 (con un'ulteriore personalizzazione, se necessario) per creare uscita.
Problemi correlati