NHibernate - принудительное экранирование на именах таблиц - PullRequest
6 голосов
/ 25 марта 2009

Есть ли хорошие примеры того, как использовать это (NHibernate.Criterion.IdentifierEqExpression) онлайн? Я не мог найти ни одного. Я немного озадачен тем, что вы должны передать конструктору.

Я передаю int32 из 1 и продолжаю думать, что мой тест должен сделать «где id = 1» тип запроса, и вместо этого он взрывается с «где id =?» и кое-что о позиционных параметрах. Если это не то, что должно быть передано в конструктор ... что такое?

Реальный выпуск
Когда я смотрю на вывод SQL, кажется, что он работает правильно, за исключением того факта, что моя таблица называется User, а NHibernate не включает ее, как [User]. Есть ли способ заставить это?

1 Ответ

15 голосов
/ 26 марта 2009

Укажите имя таблицы как `User`. Например:

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

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

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

Аналогично, со столбцами вам нужно сделать что-то вроде:

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

О радостях работы с устаревшими БД.

...