Pregunta

Estoy usando la plantilla Petapoco T4 (http://www.hanselman.com/blog/t4texttemplatetransformationtoolkitcodegenerationbestikeptvisualstudiosecret.aspx), siempre convierte los nombres de las tablas, por ejemplo, convierte una tabla llamada "Media" a "Medium".¿Tienes alguna idea de cómo puedo hacerlo para dejar de hacer eso?

gracias

¿Fue útil?

Solución

En su archivo .database.tt puede modificar los nombres de las clases a su gusto para cada tabla:

tables["Media"].ClassName = "Media";

No sé de una manera de apagar esto en todas partes.Creo que es un remanente del inflector subsónico.En las clases de Schemareader, verá una llamada como esta:

tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);

Podría intentar cambiar eso a

tbl.ClassName=tbl.CleanName;

Otros consejos

Para prevenir eso, pongo siempre esta pieza de código en el archivo base.tt:

// Read schema
var tables = LoadTables();
foreach(Table t in tables)
{
    if(!t.Name.ToLower().StartsWith("tablePrefix_"))
    {
        // Filter tables by prefix
        t.Ignore = true;   
    }
    else
    {
        // This do the trick discussed here
        t.ClassName = t.CleanName;
    }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top