2 votes

Nommer les tables et les colonnes dans Fluent NHibernate

J'ai essayé de changer les noms de table et de colonne de mon entité Employee en accédant aux attributs Table("") et Column("") de sa classmap en Nhibernate fluent.

public class EmployeeMap : ClassMap<Employee>
{
    public EmployeeMap()
    {
        Table("Employees");
        Id(x => x.Id);
        Map(x => x.FirstName)
           .Column("EmpFirstName");
        Map(x => x.LastName);
           .Column("EmpLastName")
        References(x => x.Store);
     }
 }

Mais au lieu d'avoir les noms que j'ai spécifiés, les noms de table et de colonne qui sont apparus dans ma base de données Postgresql sont tous en minuscules, par exemple Employees -> employees et EmpFirstName -> empfirstname.

Comment puis-je configurer mes noms de table et de colonne pour qu'ils aient la casse exacte des lettres que j'ai spécifiée dans mon mappage des employés ?

Merci, Mark

3voto

whosrdaddy Points 6877

Je préfère la réponse de Sly mais vous pouvez vous en sortir avec celle-ci (mais c'est moche) :

public class EmployeeMap : ClassMap<Employee>
{
    public EmployeeMap()
    {
        Table("Employees");
        Id(x => x.Id);
        Map(x => x.FirstName)
           .Column("\"EmpFirstName\"");
        Map(x => x.LastName);
           .Column("\"EmpLastName\"")
        References(x => x.Store);
     }
 }

EDIT Voici le lien qui vous permettra de mettre en œuvre cette stratégie de dénomination : http://manfredlange.blogspot.com/2011/04/fluent-nhibernate-postgresql-and.html

2voto

Sly Points 8146

Essayez d'installer citation automatique pour NHibernate.

<property name="hbm2ddl.keywords">auto-quote</property>

Je pense que le problème se situe dans ce :

les identifiants FOO, foo et "foo" sont considérés comme identiques par PostgreSQL, mais "Foo" et "FOO" sont différents de ces trois identifiants et les uns des autres.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X