Използвам 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>();