请问一般Nhibernate都是返回一个对像但是这样是不是很浪费资源因为我可能不需要这个对像的所有属性请问有什么办法可以返回指定的属性
例如一张user表 有姓名、性名、年纪这一个字段
但我只想得到姓名这个字段要用什么办法???
例如一张user表 有姓名、性名、年纪这一个字段
但我只想得到姓名这个字段要用什么办法???
解决方案 »
- 大虾~~~来帮帮,关于Repeater控件下的
- 如何在一HTM文件中对不同的SESSION显示不同的菜单?
- asp.net如何在后台代码里模拟点击一个服务器按钮控件?
- protected static int的疑问
- 哪此变量方法属性可以在ASPX文件中如何使用?
- 各位前辈好小的请教网页多媒体问题
- npetshop
- Jmail组件和.net的Mail到底哪个性能更好,功能更强?
- 水晶报表
- 请教: 哪位大哥用过Server.Execute(Url)这个命令? 他可以在服务器上执行页面请求. 怎么老出错呢?
- XmlDataSource中的XPath如何写才能获取我要的数据
- 请教一个关于dnn模块开发的问题
楼主你的问题,要朝面向对象的思想去理解:
User对象,三个属性(Name,Sex,Age)
既然你要返回一个对象,那它的属性自然也会返回(不用的就不赋值)
如果你只想返回Name字段,可以通过创建一个只包含Name字段的基类,然后返回基类,但这种方式会使得后期的维护很麻烦.PS:DataSet也有它自己的好处,特别在数据的处理方面
在使用DataSet进行数据绑定,这个时候,绑定的数据字段为你SQl查询的字段就可以了!
public IList GetEmployeeInfo(string userName)
{
Ilist list;
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
ITransaction tx = session.BeginTransaction();
try
{
IQuery query = session.CreateQuery("select userName from User as u where u.userName = '" + userName+ "'");
list = query.List();
}
catch (Exception exp)
{
throw (exp);
}
session.Close();
return list;
}
public virtual ArrayList GetAllEntities(string hql)
{
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
ArrayList list = (ArrayList)session.Find(hql);
NHibernateHelper.CloseSession();
return list;
}
{
Ilist list;
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
ITransaction tx = session.BeginTransaction();
try
{
IQuery query = session.CreateQuery( "select userName from User as u where u.userName = ' " + userName+ " ' ");
list = query.List();
}
catch (Exception exp)
{
throw (exp);
}
session.Close();
return list;
}
public virtual ArrayList GetAllEntities(string hql)
{
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
ArrayList list = (ArrayList)session.Find(hql);
NHibernateHelper.CloseSession();
return list;
}
因为我的架构是MVC 前台是VM页面 没有DataSet。
所以我都是能用基类实现的都不自己写SQL
public IList GetEmployeeInfo(string userName)
{
Ilist list;
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
ITransaction tx = session.BeginTransaction();
try
{
IQuery query = session.CreateQuery( "select userName from User as u where u.userName = ' " + userName+ " ' ");
list = query.List();
}
catch (Exception exp)
{
throw (exp);
}
session.Close();
return list;
}
public virtual ArrayList GetAllEntities(string hql)
{
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
ArrayList list = (ArrayList)session.Find(hql);
NHibernateHelper.CloseSession();
return list;
}
//而且我觉得Nhibernate应该就是让我们少用SQl吧!!!
//所以我都是能用基类实现的都不自己写SQL我对楼主的这点认识有保留意见.我们的实体对象,只是对数据表的一个映射,俗称"ORM",使得编程人员不用面向于关系数据库,直接面向于"对象"编程.但最终与数据库的数据交换,还是要通过SQL来读写
如果有一个用户在输入时username时使用 test' and '1'='1 时,任何数据都会被显示出来。另外ydsunny(小强)同学说直接返回100多个属性只是浪费一点指针而已这是不对的,如果你的表中还有image等大字段,那么由nhibernate生成的SQL语句执行速度就会很慢。还是qufo等同学的方案比较好