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

原创 2003年12月18日 00:10:00

实践ORM,创建基于Grove.NET应用程序(四)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

撰稿 林学鹏 cnlxp@msn.com

 

       操作该关系映射实体类,简单示例:

              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的多层开发结构图

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2003-12-161535460.jpg

 

 

 

 

 

 

 

 

 

 

结束语

       通过上面的示例,相信您已经掌握了怎样创建一个基于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

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

实践ORM,创建基于Grove的.NET应用程序(二) 撰稿 林学鹏 cnlxp@msn.com 7)在当前项目的EntityDB下添加CustomerDB类,该类负责对Customer的数据库操作,...
  • shupu
  • shupu
  • 2003年12月18日 00:02
  • 1276

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

实践ORM,创建基于Grove的.NET应用程序(三) 撰稿 林学鹏 cnlxp@msn.com        9) 在当前项目的Managers下添加CustomerManager类及Address...
  • shupu
  • shupu
  • 2003年12月18日 00:03
  • 1222

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

实践ORM,创建基于Grove的.NET应用程序(一) 撰稿 林学鹏 cnlxp@msn.com   就目前大多数软件开发项目的数据都存储在关系型数据库中,开发时要求开发人员对SQL语句语法以及规则等...
  • shupu
  • shupu
  • 2003年12月18日 00:02
  • 1862

基于Grove实践ORM的感悟

基于Grove实践ORM的感悟 名词解释 数据访问层:基于逻辑分层(Layer)的应用程序中直接与数据库交互的应用程序代码。 业务实体:应用程序中业务数据的载体,一般有DataSet、xml文本、...
  • JasonSeaver
  • JasonSeaver
  • 2004年07月01日 21:53
  • 2259

Grove—— .Net下的ORM框架

Grove—— .Net下的ORM框架   参见原文:http://grove.91link.com(英)   Grove下载   The .NET ORM Architecture(.Net ORM...
  • SophiaWang
  • SophiaWang
  • 2007年10月31日 10:27
  • 1321

创建.NET应用程序所经历的步骤

1、使用某种.NET兼容语言(如C#)编写应用程序。 2、把代码编译为(CIL),存储在程序集中。 3、在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用...
  • ahao214
  • ahao214
  • 2015年03月06日 22:54
  • 837

ORM进阶之Hibernate中多对一的映射关系

上一篇博客为大家讲了hibernate中的关联映射,还有一对一关系的两种实现方式,今天为大家说一下多对一的映射关系。 举个例子:一个班级可以有多个学生,而一个学生只能有在一个班级,而这...
  • zhanghongjie0302
  • zhanghongjie0302
  • 2015年09月04日 12:52
  • 2155

基于Hadoop生态圈的数据仓库实践 —— ETL(三)

三、使用Oozie定期自动执行ETL1. Oozie简介(1)Oozie是什么        Oozie是一个管理Hadoop作业、可伸缩、可扩展、可靠的工作流调度系统,其工作流作业是由一系列动作构成...
  • wzy0623
  • wzy0623
  • 2016年07月11日 15:05
  • 14319

【EF 4】ORM框架及其流行产品之一EF介绍

导读:跳进了多租户切换数据库的坑,那么就继续走下去吧。在我们的项目中,是运用EF实现对数据库的操作,那么EF其实是.NET系统中,基于ORM框架的一个产品实现。在java那边,则有Hibernate和...
  • u013034889
  • u013034889
  • 2016年01月27日 14:50
  • 1917

.Grove—— .Net下的ORM框架

 .Grove—— .Net下的ORM框架 参见原文:http://grove.91link.com(英) Grove下载 The .NET ORM Architecture(.Net ORM 架构)...
  • weinasi3252
  • weinasi3252
  • 2007年03月14日 00:13
  • 1787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实践ORM,创建基于Grove的.NET应用程序(四)
举报原因:
原因补充:

(最多只允许输入30个字)