在SQL中,表的关联查询分为内联 Inner Join,左连接Left Join,右连接 Right Join,框架这里的用法一样。这里只举例一个
这里用到人员表和部门表,人员的外键有部门ID.
~~~
UserTab user = new UserTab();
DepartTab depart = new DepartTab();
OQL join = OQL.From(user)
.LeftJoin(depart).On(user.DepartID, depart.DepartID)
.Select(user.UserName, depart.DepartName)
.END;
EntityContainer ec = new EntityContainer(join);
ec.Execute();
~~~
如果你有一个视图的实体类,则可以用下面的方法返回视图集
~~~
List<VUser_Depart> lstVuser = ec.Map<VUser_Depart>().ToList();--最新版dll暂时不支持这种写法了
~~~
或者如下通过索引进行赋值:
![](https://box.kancloud.cn/f9f332d2bc62f4a4f6340f46c193ae7a_500x463.png)
也可以返回DataTable (不建议这样转datatable,建议用adohelper获取datatable)
`ec.MapToDataTable("VUser");`
可以通过下面的方式来返回一个视图集合:
![](https://box.kancloud.cn/aedb831c7de37f26b88c099ad3354b23_699x611.png)
或者你不用定义视图实体也可以咯:
![](https://box.kancloud.cn/a59e7697d03dbfd1dd3b6577ccd854b6_384x82.png)
这里 P1 和 P2 是临时定义的属性字段,你可以定义随便成其他的名称。
多实体复杂条件,举例如下:
![](https://box.kancloud.cn/2a57ede82f1ace122728e5c64585e7a2_556x481.png)
或
![](https://box.kancloud.cn/a78a05ebe37e424290b9fd457cd5a967_602x479.png)