欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> WEB开发 >> ASP.NET教程 >> .NET Framework >> 教程正文

  没有公告

教程: ASP.NET教程-.NET Framework-Websharp使用说明 更多...
教程: ASP.NET教程-.NET Framework-Websharp使用说明

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方法来遍历。

如果要表示一对多的对象结构,我们可以采用如下的方式(表明了一个入库单的结构,这个入库单包含了入库单头和相关明细):

public class Form : PersistenceCapable

{

private EntityData form;

private FormDetail formDetail;

#region 构造函数

public Form() : this(true)

{}

public Form(bool AutoInit)

{

form=EntityPrototypeManager.GetEmptyEntity("Form");

if(AutoInit)

form.NewRecord("Form");

}

public Form(EntityData entity)

{

form=entity;

}

#endregion

#region 属性

public string FormID

{

get{return form["FormID","Form"].ToString();}

set{form["FormID","Form"]=value;}

}

public DateTime FormTime

{

get{return form.GetDateTime("FormTime","Form");}

set{form["FormTime","Form"]=value;}

}

public FormDetail FormDetail

{

get

{

if(formDetail==null)

{

formDetail=new FormDetail(form);

}

return formDetail;

}

}

#endregion

#region PersistenceCapable 成员

public int ObjectCount

{

get

{

return form.EntityCount;

}

}

public EntityData EntityData

{

get

{

return form;

}

set

{

form=value;

}

}

public bool Next()

{

return form.Next("Form");

}

public void First()

{

form.First("Form");

}

public void AddNew()

{

form.NewRecord("Form");

}

#endregion

}

public class FormDetail : PersistenceCapable

{

private EntityData form;

#region 构造函数

public FormDetail() : this(true)

{}

public FormDetail(bool AutoInit)

{

form=EntityPrototypeManager.GetEmptyEntity("Form");

if(AutoInit)

form.NewRecord("FormDetail");

}

public FormDetail(EntityData entity)

{

form=entity;

}

#endregion

#region 属性

public string FormDetailID

{

get{return form["FormDetailID","FormDetail"].ToString();}

set{form["FormDetailID","FormDetail"]=value;}

}

public string FormID

{

get{return form["FormID","FormDetail"].ToString();}

set{form["FormID","FormDetail"]=value;}

}

public string ProductID

{

get{return form["ProductID","FormDetail"].ToString();}

set{form["ProductID","FormDetail"]=value;}

}

public decimal InCount

{

get{return form.GetDecimal("InCount","FormDetail");}

set{form["InCount","FormDetail"]=value;}

}

#endregion

#region PersistenceCapable 成员

public int ObjectCount

{

get

{

return form.Tables["FormDetail"].Rows.Count;

}

}

public EntityData EntityData

{

get

{

return form;

}

set

{

form=value;

}

}

public bool Next()

{

return form.Next("FormDetail");

}

public void First()

{

form.First("FormDetail");

}

public void AddNew()

{

form.NewRecord("FormDetail");

}

#endregion

}

数据的存取方式

数据存取的目的,是持久化保存对象。在Websharp中,定义了PersistenceManager接口来实现这个功能。PersistenceManager的定义可以见:附1:Websharp主要接口定义——PersistenceManager

我们可以使用如下的方式来持久化保存一个对象:

Product product=new Product (true);

……//处理product

PersistenceManager pm = PersistenceManagerFactory.Instance().

CreatePersistenceManager();

pm.PersistNewObject(p);

pm.Close();

代码非常简明和直观,没有一大堆数据库操纵的代码,也不容易发生差错。

也可以通过向PersistenceManagerFactory 传递一个PersistenceProperty参数来初始化一个PersistenceManager,如:

PersistenceProperty pp=new PersistenceProperty();

pp……//设置pp的属性

PersistenceManager pm = PersistenceManagerFactory.Instance().CreatePersistenceManager(pp);

关于PersistenceProperty的说明,可以见后面的系统持久化配置信息一节。

事务处理

在很多时候,在处理对象保存的时候,我们需要使用事务处理,特别是在处理上上面示例中的类似于入库单的一对多结构的对象的时候。在Websharp中,我们可以通过Transaction 接口来完成这个功能。Transaction接口的定义可以见:附1:Websharp主要接口定义——Transaction

下面是使用事务处理的一个例子:

Product product=new Product (true);

……//处理product

PersistenceManager pm = PersistenceManagerFactory.Instance().

CreatePersistenceManager();

Transaction trans=pm.CurrentTransaction;

trans.Begin();

try

{

pm.PersistNewObject(p);

trans.Commit();

}

catch(Excption e)

{

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    asp连接mysql数据库

    asp连接mysql数据库-2

    frontpage2000教程---制作主页
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网