NHibernate – принудительное экранирование имен таблиц
-
21-08-2019 - |
Вопрос
Есть ли хорошие примеры использования этого (NHibernate.Criterion.IdentifierEqExpression) в Интернете?Я не смог найти ни одного.Я немного смущен тем, что вы должны передать в конструктор.
Я прохожу в INT32 от 1 и продолжаю думать, что мой тест должен в основном делать «где id = 1» типа запроса, и вместо этого он взрывается с «где id =?» и что -то о позиционных параметрах.Если это не то, что должно быть передано в конструктор...что такое?
Реальная проблема
Когда я смотрю на вывод SQL, кажется, что он работает правильно, за исключением того факта, что моя таблица называется User, а NHibernate не включает ее как [User].Есть ли способ заставить это сделать?
Решение
Укажите имя таблицы как `User
`.Например:
(HBM)
<class name="User" table="`User`">
(Fluent)
public UserMap()
{
WithTable("`User`");
...
(Mapping By Code)
public UserMap()
{
Table("`User`");
...
Аналогично со столбцами вам придется сделать что-то вроде:
Map(x => x.IsCurrent, "`Current`");
Ох, какие радости работы с устаревшими БД.