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

** 实践 ** ** 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)

  1. 基于 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://grove.91link.com

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus