Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NHibernate - Force escaping on Table Names

Are there any good examples of how to use this (NHibernate.Criterion.IdentifierEqExpression) online? I couldn't find any. I'm a little confused about what you are supposed to pass into the constructor.

I pass in an int32 of 1 and I keep thinking my test should basically do a "where id = 1" type of query and instead it blows up with "where id = ?" and something about positional parameters. If that's not what is supposed to be passed into the constructor ... what is?

Real Issue
When I look at SQL output it seems to be working correctly except for the fact my table is named User and NHibernate isn't enclosing it like [User]. Any way to force this?

like image 439
BuddyJoe Avatar asked Mar 24 '09 21:03

BuddyJoe


1 Answers

Specify the table name as `User`. For example:

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

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

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

Similarly, with columns you'll have to do something like:

Map(x => x.IsCurrent, "`Current`");

Oh the joys of working with legacy DBs.

like image 101
Stuart Childs Avatar answered Oct 04 '22 05:10

Stuart Childs