/ / Как да върна малко от съхранена процедура, използвайки nhibernate - c #, nhibernate

Как да върна малко от съхранена процедура, използвайки nhibernate - c #, nhibernate

Използвам nHibernate в моя проект, но имам съхранена процедура, която просто връща купчина успех или сега.

Как да кодирам това в c #?

Опитах следното, но не ми харесва, защото нямам картографиране за bool !!!

{"Няма постоянен за: System.Boolean, mscorlib, версия = 2.0.0.0, Култура = неутрална, 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>();

Отговори:

5 за отговор № 1

Щях да се справя с този проблем по малко по-различен начин, който се надяваме да ви послужи като заобиколно решение.

Бих променил съхранената си процедура, за да върна 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>();