65.9K
CodeProject 正在变化。 阅读更多。
Home

Grove [.NET 开发组件包]

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.52/5 (25投票s)

2003年11月20日

3分钟阅读

viewsIcon

217557

downloadIcon

1113

用于数据库项目开发人员。

 

引言

    Grove 是一个用于 .NET 项目开发的组件包。Grove 开发组件包包含 Grove 组件和 Grove 工具包。
    Grove 组件是基于 .NET 框架的面向对象开发组件,支持多数据库,提供标准的双层、三层或 N 层开发模式。
    Grove 工具包是基于 .NET 开发环境(Visual Studio 2003/2002)的插件,它可以预览任何数据库中的数据表的实体类或 XML 描述,但目前仅支持 MS SQL Server。

Grove 能做什么?

    它可以帮助您从新的视角开发 .NET 项目,Grove 工具包对您的团队很有用,它可以帮助您的项目快速完成。

版本方案

版本 修订 描述 日期
1.0  
  • 组件可以执行实体类的持久化操作,例如插入、更新、删除等,实体类可以执行简单的查询。
  • 工具包可以预览和生成实体类或 XML 描述。
2003-6-10
1.1 1401
  • 组件可以执行关系查询,例如 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 等。
  • 工具包可以自行构建这些关系,看起来像 MS SQL Server 的关系结构,使用方式也类似。
2003-9-20
1.1 1501
  • 组件可以执行 IN 查询,例如子集合查询,并更改对象查询模式,使用对象查询接口,放弃使用持久化管理器进行查询。
  • 工具包可以预览实体类或关系查询的 XML 描述。
2003-11-10

下一步计划
  1. EXISTS 关系查询
  2. 重新构建关系查询的 XML 描述,并提供一个解析器。
  3. 将 SQL 反射到工具包关系格式。

当前版本

  1. 实体类可以自行持久化。
  2. 工具包关系构建器,可视化界面。
  3. 支持多模式开发。
  4. 简单的日志管理。
  5. 简单的异常管理。

实用示例。

  • 实体类自行持久化。
使用工具包创建实体类: 
    [DataTable("Customers")]
    public class Customer:Grove.DataObject.EntityClassBase
    {
        int _CustomerID;
        string CustomerName;
        string CustomerURL;

        [KeyField("CustomerID")]
        public int CustomerID
        {
            get{return this._CustomerID;}
            set{this._CustomerID=value;}
        }
        [DataField("CustomerName")]
        public string CustomerName
        {
            get{return this._CustomerName;}
            set{this._CustomerName;}
        }
        [DataField("CustomerURL")]
        pubic string CustomerURL
        {
            get{return this._CustomerURL;}
            set{this._CustomerURL=value;}
        }
    }

自行持久化:
    Customer c=new Customer();
    c.CustomerName="tryitsoft";
    c.CustomerURL="http://www.tryitsoft.com";
    c.Insert();//插入新客户
    c.CustomerID=1001;
    c.CustomerName="chengdu tryitsoft";
    c.Update();//更新客户
    c.CustomerID=1002;
    c.Delete();//删除客户
    c=c.GetObject(1005);//检索客户
    string filter="CustomerName=’tryitsoft?quot;;
    DataSet ds=c.GetObjects(filter);//按客户名称检索客户

说明:如果您希望实体类能够自行持久化,实体类必须继承 Grove.DataObject.EntityClassBase。
  • 通过实体类进行关系查询。
使用工具包创建关系实体类:
[RelationTable("OrderRelationQueryResult",BeginWithTable="Orders")]
public class OrdersRelationQuery
{
    [RelationReflect("Orders","Order Details")]
    [RelationField("OrderID","OrderID")]
    public string Relationship_1
    {
        get{return "[Orders].[OrderID]=[Order Details].[OrderID]";}
    }

    DateTime _RequiredDate;
    [DataField("RequiredDate",TableName="Orders")]
    public DateTime RequiredDate
    {
        get{return this._RequiredDate;}
        set{this._RequiredDate=value;}
    }
    int _ProductID;
    [DataField("ProductID",TableName="Order Details")]
    public int ProductID
    {
        get{return this._ProductID;}
        set{this._ProductID=value;}
    }

}
工具包中的关系图。

通过关系实体类执行查询:
    IObjectOperator oo=ObjectOperatorFacotry.GetObjectOperator();
    IObjectQuery oq=oo.NewQuery(typeof(Customer));
    oq.Filter="";//使用实体属性名称设置 SQL 过滤器 
    oq.OrderString="";//使用实体属性名称设置排序字符串
    ArrayList result=oq.Execute();

工具概览

    Grove 工具包是 Visual Studio .NET 的插件工具,安装后,打开 Studio IDE,请在 Studio IDE 的“工具”菜单中找到它。如果找不到,您可以执行 'ReCreateCommands.reg' 重新注册,该文件位于您的安装路径下。
    点击 Studio IDE“工具”菜单中的“GroveToolKit”项,设置数据库连接字符串,然后连接到数据库。

    现在,您可以选择一个表,然后点击工具栏上的“预览实体类”按钮,然后...

    您也可以点击“预览 XML 定义”按钮进行预览。

    当您想构建关系查询时,可以点击“构建关系查询”按钮,然后选择实体类选项进入下一步,您会看到一个空白表单,在这里您必须先添加表,并连接这些表的关联,它的用法类似 MS SQL Server。

项目示例

  • Rainbow(sz)  Bug 管理系统

支持

支持邮箱:<landws> cnlxp@msn.com
© . All rights reserved.