如何使用nhibernate从存储过程返回一点

时间:2010-04-28 17:34:32

标签: c# nhibernate

我在我的项目中使用nHibernate但是我有一个存储过程,它只是返回成功或现在的boolen。

如何在c#中编写代码?

我尝试了以下但是它不喜欢因为我没有bool的映射!!!

  

{“No persister for:System.Boolean,   mscorlib,版本= 2.0.0.0,   文化=中性,   公钥= 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 个答案:

答案 0 :(得分:5)

我会以稍微不同的方式解决这个问题,希望能够为你解决这个问题。

我会更改我的存储过程以返回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>();