【发布时间】:2011-03-20 22:13:19
【问题描述】:
我已经开始在一个小项目中使用 NHibernate 3.0 和 PostgreSQL,到目前为止,由于 NHibernate 站点关闭,过程有些艰难,我确信这个答案在他们的网站上的某个地方。
我有一个包含这两列的数据库(当然真实表中还有更多):
int ID
String Feature
现在我正在使用 FluentNHibernate 进行映射,如下所示:
public class MyEntityMap: ClassMap<MyEntity>
{
public MyEntityMap()
{
Id(x => x.ID);
Map(x => x.Feature);
}
}
和一个 LINQ 查询来获取数据
var strucs = from str in session.Query<MyEntity>()
where str.ID < 5
select str;
查询将生成正确的 SQL 语句,很好。问题是,因为我的列名中有大写字母,所以您必须将它们用引号引起来,但生成的 SQL 代码如下所示:
SELECT this_.ID as ID0_0_, this_.feature as feature0_0_,
FROM "MyEntity" this_ WHERE this_.ID < 5
列周围没有引号的地方。如果我运行它,我会得到一个“列 this_.id”,等等。
有人知道如何让 NHibernate 将列名用引号括起来吗?
编辑:我不能将列名小写,因为有些列需要第三方程序全部大写。
我尝试添加 .ExposeConfiguration(cfg => cfg.SetProperty("hbm2ddl.keywords","auto-quote") 但它似乎没有做任何事情。
【问题讨论】:
标签: c# nhibernate postgresql fluent-nhibernate