Я пытаюсь получить скалярное значение, используя собственный запрос SQL, и мое утверждение выглядит как
var deptName =session.CreateSQLQuery(@"Select d.deptName from employee e,dept d Where e.deptId=d.deptID and e.EmpID=?")
.AddScalar("deptName", NHibernateUtil.String)
.SetCacheable(true)
.SetCacheMode(CacheMode.Normal)
.SetParameter(0, "12345").List();
И соответствующий SQL из SQL Server Profiler является правильным, и это возвращает желаемое значение
exec sp_executesql N'select d.deptName from employee e, dept d
where e.empId=@p0
and e.deptId=d.deptId',N'@p0 nvarchar(4000)',@p0=N'12345'
Но typeof
deptName
равно System.Collections.IList {System.Collections.Generic.List<object>}
, а также, когда я пытаюсь получить доступ к deptName
с помощью deptName[0].ToString()
, оно возвращает System.Object[]
вместо фактического значение.