Как я могу вернуть немного из хранимой процедуры, используя nhibernate - PullRequest
3 голосов
/ 28 апреля 2010

Я использую nHibernate в своем проекте, но у меня есть хранимая процедура, которая просто возвращает результат успеха или сейчас.

Как мне это написать в c #?

Я пробовал следующее, но это не нравится, потому что у меня нет сопоставления для bool !!!

{"Не сохраняется для: System.Boolean, mscorlib, версия = 2.0.0.0, Culture = нейтрально, PublicKeyToken = b77a5c561934e089" }

IQuery query = NHibernateSession.CreateSQLQuery("EXEC MyDatabase.dbo.[ContentProvider_Import] :ContentProviderImportLogId", "success", typeof(bool))
                .SetInt32("ContentProviderImportLogId", log.Id);

            var test = query.UniqueResult<bool>();

и тот же результат от

IQuery query = NHibernateSession.CreateSQLQuery("EXEC MyDatabase.dbo.[ContentProvider_Import] :ContentProviderImportLogId")
                .AddEntity(typeof(bool))
                .SetInt32("ContentProviderImportLogId", log.Id);

            var test = query.UniqueResult<bool>();

1 Ответ

5 голосов
/ 28 апреля 2010

Я бы решил эту проблему несколько иным способом, который, надеюсь, послужит вам обходным путем.

Я бы изменил свою хранимую процедуру, чтобы вернуть bool следующим образом:

declare @result bit
set @result = 1

select @result

Тогда код C # будет:

IQuery query = NHibernateSession.CreateSQLQuery("EXEC MyDatabase.dbo.[ContentProvider_Import] :ContentProviderImportLogId")
                .SetInt32("ContentProviderImportLogId", log.Id);

var test = query.UniqueResult<bool>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...