.net NHibernate-强制表名转义

.net NHibernate-强制表名转义,.net,nhibernate,fluent-nhibernate-mapping,mapping-by-code,.net,Nhibernate,Fluent Nhibernate Mapping,Mapping By Code,有没有关于如何在线使用这个(NHibernate.criteria.IdentifierEqExpression)的好例子?我找不到。 我对你应该传递给构造函数的内容有点困惑 我通过了1的int32,我一直认为我的测试基本上应该做得更好 “whereid=1”类型的查询,它会以“whereid=?”和一些关于位置参数的内容结束。如果这不是应该传递给构造函数的内容。。。是什么 真实问题 当我查看SQL输出时,它似乎工作正常,除了我的表名为User,并且NHibernate没有像[User]那样封装

有没有关于如何在线使用这个(NHibernate.criteria.IdentifierEqExpression)的好例子?我找不到。 我对你应该传递给构造函数的内容有点困惑

我通过了1的int32,我一直认为我的测试基本上应该做得更好 “whereid=1”类型的查询,它会以“whereid=?”和一些关于位置参数的内容结束。如果这不是应该传递给构造函数的内容。。。是什么

真实问题

当我查看SQL输出时,它似乎工作正常,除了我的表名为User,并且NHibernate没有像[User]那样封装它。是否有强制执行此操作的方法?

将表名指定为“
User
”。例如:

(HBM)
<class name="User" table="`User`">

(Fluent)
public UserMap()
{
    WithTable("`User`");
    ...

(Mapping By Code)
public UserMap()
{
    Table("`User`");
    ...

哦,使用遗留DBs的乐趣。

您可以发布一个标准表达式的示例吗?我看不出IdentifierEqExpression和转义表名之间的关系。。。请再解释一下,您可以使用倒勾(`)以独立于数据库的方式转义名称([]是特定于SQL Server的)。很好的一点,我看到他在使用[],甚至没有想到这一点。为了最佳实践的利益,我将更新我的帖子。酷。我不知道背勾是标准。这是Hibernate从MySQL借用的东西,然后解析出来使其独立于数据库吗?太糟糕了,方言设置没有为您解决这个问题。@StuartChilds:thnx对于这个问题帮助很大
Map(x => x.IsCurrent, "`Current`");