实践ORM,创建基于Grove的.NET应用程序(四)
撰稿 林学鹏 [email protected]
操作该关系映射实体类,简单示例:
IObjectOperator oo=ObjectOperatorFactory.GetObjectOperator();
IObjectQuery oq=oo.NewQuery(typeof(CustomersRelationQuery));
oq.Filter=”this.CustomerName=‘创特软件’”;
oq.Execute(result);
当前Grove支持多表关系查询,包括表间LEFT JOIN ,RIGHT JOIN ,FULL JOIN以及默认的INNER JOIN等。
支持子查询IN,简单示例:
IObjectOperator oo=ObjectOperatorFactory.GetObjectOperator();
IObjectQuery oq=oo.NewQuery(typeof(Address));
oq.Filter=”Customer.CustomerID.Contains(this.CustomerID)”;
oq.DeclareCollection(“Customer.CustomerID”,”Customer.CustomerID>1000”);
result=oq.Execute(typeof(Customer));
说明:以上查询表示的SQL形式为select * from Addresses where CustomerID in (select CustomerID from Customers where Customers.CustomerID>1000)
14)基于XML描述的Grove应用请参考Grove帮助(CHM格式),Grove帮助可以从GroveKit安装目录得到或者执行toolbar的帮助按钮启动。
三层架构原理
各层之间的关系是数据表示层负责封装数据,作为数据存取层的调用参数,返回结果;商业逻辑层调用数据存取层处理的结果;商业逻辑层和ASP.NET(一般为ASPX页面的后置类.aspx.cs)通信。ASPX的结果从商业逻辑层获取,ASPX需要做调用商业逻辑层的动作。例如Customer的插入,即使在数据存取层存在这样的一个方法,也不能由ASPX直接调用。必须在商业逻辑层中再封装一次.这样做的目的在于使结构简单,清晰。数据存取层只负责操作数据库(实质是由Grove组件操作)。商业逻辑层只做逻辑(得到相应操作或返回的数据),处理相应的逻辑,而数据表示层只负责数据的封装,或是把ASPX页面的参数封装,作为商业逻辑层的参数传入商业逻辑层,并由商业逻辑层做相应处理,并转交数据存取层做实质上的数据操作。
基于Grove的多层开发结构图
结束语
通过上面的示例,相信您已经掌握了怎样创建一个基于Grove的.NET的Web应用程序,包括实体映射类的一些方法,Façade层的一些定义,及相关DAO层的一些重用方法,这些方法已经创建了您的Web应用程序,下一步,您可以通过Microsoft Application Center Test来测试您的程序。
参考资料
关于Grove的详细信息,支持站点已经为您提供了一些相关帮助
本文地址:http://com.8s8s.com/it/it45227.htm