实践ORM,创建基于Grove的.NET应用程序(四)

类别:.NET开发 点击:0 评论:0 推荐:

实践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.NETWeb应用程序,包括实体映射类的一些方法,Façade层的一些定义,及相关DAO层的一些重用方法,这些方法已经创建了您的Web应用程序,下一步,您可以通过Microsoft Application Center Test来测试您的程序。

 

参考资料

       关于Grove的详细信息,支持站点已经为您提供了一些相关帮助

       http://grove.91link.com

       关于对象角色建模ORM,请参考
       http://www.microsoft.com/china/msdn/vstudio/technical/articles/orm.asp

本文地址:http://com.8s8s.com/it/it45227.htm