Может ли NHibernate действительно не выполнить простой собственный SQL-запрос, если имя таблицы является зарезервированнC#

Место общения программистов C#
Anonymous
Может ли NHibernate действительно не выполнить простой собственный SQL-запрос, если имя таблицы является зарезервированн

Сообщение Anonymous »

Я столкнулся с ошибкой в ​​NHibernate. Я использую старую версию, которую сейчас не могу обновить (4.1.1.4000). Он отказывается выполнять простейший необработанный SQL-запрос, который прекрасно работает в SQL Management Studio и отлично работает для других таблиц даже из кода.

Код: Выделить всё

var rowsAffected = session.CreateSQLQuery($@"UPDATE [bt].[Notification] SET Status = 1 Where Status = 1;").ExecuteUpdate();
Этот очень простой оператор sql не будет работать с этой таблицей, но работает с другими таблицами. Выдается ошибка.

Код: Выделить всё

NHibernate.Exceptions.GenericADOException
HResult=0x80131600
Message=could not execute native bulk manipulation query:UPDATE [bt].[Notification] SET Status = 1 Where Status = 1;[SQL: UPDATE [bt].[Notification] SET Status = 1 Where Status = 1;]
Source=NHibernate
StackTrace:
at NHibernate.Engine.Query.NativeSQLQueryPlan.PerformExecuteUpdate(QueryParameters queryParameters, ISessionImplementor session)
at NHibernate.Impl.SessionImpl.ExecuteNativeUpdate(NativeSQLQuerySpecification nativeQuerySpecification, QueryParameters queryParameters)
at NHibernate.Impl.SqlQueryImpl.ExecuteUpdate()
at xxxxxxxxxx.NotificationSender.MainThread() in C:\git\xxxxxxx\NotificationSender.cs:line 44

Inner Exception 1:
SqlException: Invalid object name 'bt.Notification'.
Я потратил на это часы просто потому, что не могу поверить, что это действительно происходит, поэтому я был уверен, что ошибаюсь. Но теперь я думаю, что на самом деле это просто ошибка, но я хочу убедиться, что она неразрешима, прежде чем менять имя таблицы.


Подробнее здесь: https://stackoverflow.com/questions/790 ... le-name-is

Вернуться в «C#»