我有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来弄哦
觉得你的设计有问题。不过也可以,代码和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>