首页 新闻 会员 周边

nhibernate多表查询

0
悬赏园豆:30 [待解决问题]

我有2个表

一个表A,一个表B,A用来存储任务的重要信息,B用来存储任务的辅助信息。

A和B通过生成的id=Guid.NewGuid().ToString()生成个唯一标识符来相关联(这个不是主键)

这个生成的id会存储在A和B表的GUID字段中去。

现在我想读取A和B表的内容进行显示。

现在需要用nhibernate来进行多表查询。请高手指教如果可以把A和B表的内容查询出来。

A

(

TaskID  int  identity(1,1) primary key

TaskName nvarchar(50)

GUID  nvarchar(50)

)

 

B

(

TaskID  int  identity(1,1) primary key

TaskDesc nvarchar(50)

GUID  nvarchar(50)

)

 

上面2个表我给出了部分字段信息。

我先在repeart中绑定A和B表的信息,该如何做。

需要用nhibernate来弄哦

 

问题补充: 请高手做个简单的demo给我。 sql语句如下: select A.TaskID,B.TaskDesc from A inner join B on A.GUID=B.GUID 我q邮箱,305249360@qq.com 我顶。我顶。。别沉了
tertyufer的主页 tertyufer | 初学一级 | 园豆:35
提问于:2010-11-18 16:53
< >
分享
所有回答(1)
0

觉得你的设计有问题。不过也可以,代码和Mapple如下

     Guid id = Guid.NewGuid(); 

     var a = new A() { Id = 1, Name = "a", RefId = id };

     var b = new B() { Id = 1, Name = "a", RefId = id };    

     bf.GetSession().Save(a);

     bf.GetSession().Save(b);

     var result=bf.GetSession(). Find("select a, b from A a, B b where a.RefId=b.RefId");               

     //hql也是 select a.Name,b.Name ..... 

     var firstItem = (object[])result[0]; //result的Item都是一个object[] 注意转换。
     var resultA = (A)firstItem[0];
      var resultB = (B)firstItem[1];

 

   Mapping,namespace自己补充。

  <class table="CoreTest_B" name="A"> 

   <id name="Id">    

           <generator class="assigned"></generator> 

   </id> 

    <property name="Name"></property>

    <property name="RefId"></property>


  </class>

     <class table="CoreTest_A" name="B">  

           <id name="Id">

                <generator class="assigned"></generator> 

          </id>    

         <property name="Name"></property>

        <property name="RefId"></property>

 </class>

沉默的糕点 | 园豆:1786 (小虾三级) | 2010-11-18 23:17
迟到的结贴sorry~!
支持(0) 反对(0) tertyufer | 园豆:35 (初学一级) | 2010-12-27 17:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册