在Fluent NHibernate中命名表和列
我试图通过在fluent Nhibernate中访问其类映射的表(“”)和列(“”)属性来更改Employee实体的表名和列名在Fluent NHibernate中命名表和列,nhibernate,postgresql,naming,fluent,Nhibernate,Postgresql,Naming,Fluent,我试图通过在fluent Nhibernate中访问其类映射的表(“”)和列(“”)属性来更改Employee实体的表名和列名 public class EmployeeMap : ClassMap<Employee> { public EmployeeMap() { Table("Employees"); Id(x => x.Id); Map(x => x.FirstName) .Co
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);
}
}
公共类EmployeeMap:ClassMap
{
公共雇员地图()
{
表(“雇员”);
Id(x=>x.Id);
映射(x=>x.FirstName)
.列(“名称”);
Map(x=>x.LastName);
.列(“EmpLastName”)
参考(x=>x.Store);
}
}
但是,我的Postgresql数据库中出现的表名和列名都是小写的,而不是我指定的名称,即Employees->Employees和EmpFirstName->EmpFirstName
如何设置表名和列名,使其与我在employee映射中指定的字母大小写完全相同
谢谢,
标记尝试设置NHibernate的选项
<property name="hbm2ddl.keywords">auto-quote</property>
自动报价
我的客人问题出在:
PostgreSQL认为标识符FOO、FOO和“FOO”是相同的,但“FOO”和“FOO”彼此不同
我更喜欢斯莱的答案,但你可以不受惩罚(但这很难看):
公共类EmployeeMap:ClassMap
{
公共雇员地图()
{
表(“雇员”);
Id(x=>x.Id);
映射(x=>x.FirstName)
.列(“\”EmpFirstName\”);
Map(x=>x.LastName);
.Column(“\”EmpLastName\”)
参考(x=>x.Store);
}
}
编辑此处是如何通过命名策略实现此功能的链接:
@OP:看看这里如何在FNH中实现这一点->
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);
}
}