Websharp使用说明(2)

转载 2006年06月04日 20:24:00

数据实体的表示

Websharp在数据的表现上,能够采用两种方式。

第一种方式,充分利用了.Net Framework类库中DataSet的功能,设计了一个EntityData类。这个类继承了DataSet,并增加了一些属性和方法。同数据库的映射关系,采用XML配置文件的方式。XML配置文件可以通过我们提供的工具来生成。

在实际的应用中,要获取一个Product实体对象,可以通过如下方式取得:

EntityData Product=EntityProtypeManager. GetEmptyEntity(“Product”);

然后,可以通过如下方式来访问这个对象的属性:

string ProductID=Customer[“ProductID”]

可以看到,这种方式同纯粹的面向对象的方式有点不同。在这种方式下,数据的表现形式只有一个,那就是EntityData。其好处是明显的,不用为每个实体都单独编写一个类,能够大大减少代码的编写量。其缺点也很明显,那就是不能利用编译器类型检测的功能,如果在调用对象的属性的时候,写错了属性的名称,就可能出错,但是,这个问题可以通过工具来解决。这种方式,比较符合原来使用ADO编程人员的习惯。

 

第二种方式,我们可以编写一个Product类,然后,按照标准的OO的方法来使用这个类。只不过,在编写Product类的时候,必须实现PersistenceCapable接口,并且,同时可以使用到EntityData类的强大功能。

PersistenceCapable类的定义见 1Websharp主要接口定义——PersistenceCapable

 

一个按照这个标准实现的Product类的示例如下:

public class Product : PersistenceCapable

     {

         private EntityData product;

         public Product()  : this(true)

         {}

 

         public Product(bool AutoInit)

         {

              product=EntityPrototypeManager.GetEmptyEntity("Product");

              if(AutoInit)

                   product.NewRecord();

         }

         public string ProductID

         {

              get{return product.GetString("ProductID");}

              set{product["ProductID"]=value;}

         }

 

         public string Name

         {

              get{return product.GetString("Name");}

              set{product["Name"]=value;}

         }

 

         public string UnitName

         {

              get{return product.GetString("UnitName");}

              set{product["UnitName"]=value;}

         }

 

         public string Description

         {

              get{return product.GetString("Description");}

              set{product["Description"]=value;}

         }

 

         public decimal Price

         {

              get{return product.GetDecimal("Price");}

              set{product["Price"]=value;}

         }

 

         public decimal CurrentCount

         {

              get{return product.GetDecimal("CurrentCount");}

              set{product["CurrentCount"]=value;}

         }

    

         public int ObjectCount

         {

              get

              {

                   return product.EntityCount;

              }

         }

 

         public EntityData EntityData

         {

              get

              {

                   return product;

              }

              set

              {

                   product=value;

              }

         }

 

         public bool Next()

         {

              return product.Next();

         }

 

         public void First()

         {

              product.First();

         }

         public void AddNew()

         {

              product.NewRecord();

         }

     }

 

可以看出,采用这种方式,Product类既可以代表一个单个的Product对象,也可以包含一个Product对象集合,并且可以通过NextFirst方法来遍历。

Websharp使用说明(2)

数据实体的表示Websharp在数据的表现上,能够采用两种方式。第一种方式,充分利用了.Net Framework类库中DataSet的功能,设计了一个EntityData类。这个类继承了DataSe...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 10:51
  • 1155

Websharp使用说明(5)

对象的查询       Websharp提供了对对象查询的功能,这个功能通过Query接口提供。Query接口的定义可以见:附1:Websharp主要接口定义——Query       可以通过下面的...
  • jane082
  • jane082
  • 2006年06月04日 20:27
  • 460

Websharp使用说明(1)

Websharp使用说明前言N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经为广大开发人员所熟知。在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、应...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 14:39
  • 1535

Websharp使用说明(7)

DataAccess: public interface DataAccess      { ...
  • jane082
  • jane082
  • 2006年06月04日 20:31
  • 398

Websharp使用说明(4)

       数据的存取方式数据存取的目的,是持久化保存对象。在Websharp中,定义了PersistenceManager接口来实现这个功能。PersistenceManager的定义可以见:附1...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 10:51
  • 1023

Websharp使用说明(8)

DataAccess:public interface DataAccess     {         #region Support Property & Method         Datab...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 14:40
  • 1255

Websharp使用说明(1)

Websharp使用说明前言N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经为广大开发人员所熟知。在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、应...
  • jane082
  • jane082
  • 2006年06月04日 20:23
  • 527

Websharp使用说明(7)

附1:Websharp主要接口定义: PersistenceCapable:public interface PersistenceCapable     {         EntityData E...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 14:39
  • 1077

Websharp使用说明(3)

如果要表示一对多的对象结构,我们可以采用如下的方式(表明了一个入库单的结构,这个入库单包含了入库单头和相关明细):public class Form  : PersistenceCapable    ...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 14:39
  • 998

Websharp使用说明(5)

       对象的查询       Websharp提供了对对象查询的功能,这个功能通过Query接口提供。Query接口的定义可以见:附1:Websharp主要接口定义——Query       ...
  • sunny_y_m
  • sunny_y_m
  • 2004年02月26日 14:39
  • 1016
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Websharp使用说明(2)
举报原因:
原因补充:

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