NHibernate 多表查询并显示在DataGrid 的问题

青蛙头-冰山 2008-10-05 04:55:25

如果只显示一个表的内容都没问题
IList m_List = session.Find (" from student s left outer join s.Teacher as t where t.TeacherName='tom'"); //查询老师姓名为“tom”的学生。
dgDataListTable.DataSource = m_List;
dgDataListTable.DataBind();
将返回的结果绑定到DataGrid中,结果显示正常,


但我想显示同时显示两个表中的部分字段就会出错。
IList m_List = session.Find ("select s.Name,t.TeacherName from student s left outer join s.Teacher as t where t.TeacherName='tom' ");
dgDataListTable.DataSource = m_List;
dgDataListTable.DataBind();

如果我想显示DataGrid里显示 两个表中的字段需要怎么做呢
...全文
315 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰岛男孩 2009-09-29
  • 打赏
  • 举报
回复
学习一下
winner2050 2008-10-08
  • 打赏
  • 举报
回复
多了select s.Name,t.TeacherName
爱因斯坦.薛 2008-10-08
  • 打赏
  • 举报
回复
其实Nhibernate就是为了避免我们去直接跟表打交道
更多的是跟对象打交道
所以必须把思维给调整过来
designonline 2008-10-08
  • 打赏
  • 举报
回复
我测试的结果也是这样一来
是不能直接绑定的.
方法一,使用你原来的方式,循环表把数据赋值于另一个对象
方法二.找一个比较好的第三方控件来实现
孤独侠客123 2008-10-08
  • 打赏
  • 举报
回复
是hql

象这种many to one,one to one的关联对象,当然能够
JOSHUATSUEI 2008-10-08
  • 打赏
  • 举报
回复
楼上的意思是说这个SQL实际上市NHibernate自己支持的对象查询使用的吧。
孤独侠客123 2008-10-08
  • 打赏
  • 举报
回复
不要用表的概念来用,Nhibernate的hql是对象的

IList m_List = session.Find (" from student s left outer join s.Teacher as t where t.TeacherName='tom'");
dgDataListTable.DataSource = m_List;
dgDataListTable.DataBind();

你的Student和Teacher是有关系的.在Student实体中肯定有一个Teacher属性吧.所以在绑定的时候,你直接<%#Eval("Teacher.TeacherName")%>就行了
青蛙头-冰山 2008-10-07
  • 打赏
  • 举报
回复
有人知道吗
青蛙头-冰山 2008-10-06
  • 打赏
  • 举报
回复
顶上去
青蛙头-冰山 2008-10-06
  • 打赏
  • 举报
回复
有人知道吗

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧