快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Websharp使用说明(2)

数据实体的表示

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类的定义见 附1:Websharp主要接口定义――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对象集合,并且可以通过Next和First方式来遍历。




返回类别: 教程
上一教程: Whidbey 初体验之局部类型 ( partial 类型)
下一教程: 第十四章 数组[《.net框架程序设计》读书笔记]

您可以阅读与"Websharp使用说明(2)"相关的教程:
· Websharp使用说明(3)
· Websharp使用说明(8)
· Websharp使用说明(5)
· Websharp使用说明(6)
· Websharp使用说明(1)
    微笑服务 优质保证 索取样品