只检索单个值
本文关键字:单个值 检索 | 更新日期: 2023-09-27 18:05:33
如果你想从数据库中检索一些值,你总是必须使用一个包含大量数据的类。
在我的例子中,我只想从存储过程中检索一个值,我真的需要使用一个只包含单个值的类吗?
我应该如何创建。hbm.xml内部,我应该如何写在c#代码,当我不想使用类?
它不是list <>或类似的。
我仍然无法找到解决这个问题的方法。
下面的代码在需要包含大量数据的类时使用。
sp_retrieveAllProductList.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="data_layer" namespace="data_layer">
<sql-query name="sp_retrieveAllProductList">
<return-scalar column="Produkt" type="string" />
<return-scalar column="Produkt_kategori" type="string" />
<return-scalar column="btn_namn" type="string" />
exec sp_retrieveAllProductList :Produkt_kategori
</sql-query>
</hibernate-mapping>
public IList<Product4> RetrieveAllProductWithPriceNameAndBtn()
{
return _session.GetNamedQuery("sp_retrieveAllProductList2")
.SetResultTransformer(Transformers.AliasToBean(typeof(Product4)))
.List<Product4>();
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace data_layer
{
public class Product4
{
public virtual string PK_produkt { get; set; }
public virtual string Produkt { get; set; }
public virtual string Produkt_kostnad { get; set; }
public virtual string btn_namn { get; set; }
}
}
我相信你应该能够使用.UniqueResult
:
string value = session.GetNamedQuery("Named_Query").UniqueResult<string>();
你应该能够保持你的映射文件相当简单:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="data_layer" namespace="data_layer">
<sql-query name="sp_single_value">
exec sp_single_value :my_param
</sql-query>
</hibernate-mapping>