Таблица имен и столбцов в Fluent NHibernate - PullRequest
2 голосов
/ 28 ноября 2011

Я попытался изменить имена таблиц и столбцов моего объекта Employee, открыв атрибуты Table ("") и Column ("") его карты классов в беглом Nhibernate.

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);
     }
 }

Но вместо имен, которые я указал, имена таблиц и столбцов, которые появились в моей базе данных Postgresql, пишутся в нижнем регистре, т.е. Employees -> employee и EmpFirstName -> empfirstname.

Как настроить имена таблиц и столбцов так, чтобы они соответствовали точным буквам, которые я указал в сопоставлении сотрудников?

Спасибо, Mark

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Я предпочитаю ответ Слай, но вы можете сойти с рук (но это некрасиво):

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);
     }
 }

РЕДАКТИРОВАТЬ вот ссылка, как реализовать это через стратегию именования: http://manfredlange.blogspot.com/2011/04/fluent-nhibernate-postgresql-and.html

2 голосов
/ 28 ноября 2011

Попробуйте настроить автоцитатуру для NHibernate.

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

По моим предположениям, проблема в этом :

идентификаторы FOO, foo и "foo" в PostgreSQL считаются одинаковыми, но "Foo" и "FOO" отличаются друг от друга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...