9

Como mi base de datos se diseñó utilizando nombres alemanes de tablas y columnas, la función de pluralización predeterminada de entidad framework no funciona para mí.Cómo personalizar la pluralización para Entity Framework 5

He encontrado un par de recursos donde se discute esto, pero ninguno de ellos parece funcionar.

lo que he encontrado: existe la PluralisationService donde puedo agregar las asignaciones:

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

Pero, ¿qué sigue? he intentado:

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

y poner a ambos en mi plantilla T4 POCO. Pero arrojó la siguiente excepción:

EntityContainer 'ContainerName' no es una tienda EntityContainer. Nombre de parámetro: storeEntityContainer
en System.Data.Entity.Design.EntityModelSchemaGenerator.Initialize (...)
en Microsoft.VisualStudio.TextTemplating ... GeneratedTextTransformation.TransformText()
+0

+1 para la investigación en la pregunta. Así es como deben hacerse las preguntas. Luchamos con este problema yo mismo sin mucho éxito. – Judo

Respuesta

0

También estoy buscando por lo mismo Tal vez this puede ayudar. Simplemente no estoy dispuesto a pagar por una característica tan básica.

EDIT:

El código que envió es para ser utilizado con EdmGen2 wich le dará CSDL, SSDL o archivos MSL pluralizado de acuerdo a su clase.

0

Para personalizar completamente los nombres de tabla de código EF En primer lugar, puede utilizar el atributo Table para especificar explícitamente el nombre de la tabla asociada a una clase:

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

Una pregunta muy antigua, pero si alguien está sigue buscando un posible flujo de trabajo/solución:

Tuve un problema similar cuando quería personalizar la importación de esquema (CSDL) de la base de datos. La solución/flujo de trabajo fue el siguiente:

  1. Desplegado el esquema de base de datos (utilicé Visual Studio Project Database VS 201x) a una base de datos locales
  2. importado el modelo de base de datos utilizando EDMGEN para crear el CSDL, SSDL y MSDL archivos http://msdn.microsoft.com/en-us/library/vstudio/bb387165(v=vs.110).aspx
  3. Modificado EDMGEN2 con mis cambios sobre cómo manejar la pluralización y nombrando con reglas personalizadas y creó el archivo EDMX
  4. Ran las plantillas T4 (con una personalización adicional según sea necesario) para crear de salida.
Cuestiones relacionadas