U9 实体操作 API 参考手册 适用版本:U9 V1.5 UBF2.0 修改状态: 编写人: 叶琳 审核人: 此部分要记录该文档形成过程中的历次版本变更过程及变更的内容 版本 修 改 与参与人 修改时间 修改原因 修改内容 审批人 1.0 叶琳 2008-7-8 原始文档建立 叶琳 2008-7-9 加上类的名空间 叶琳 2008-7-11 加 EntityKey,EntityFinder,EntityViewQuery,ExtendHelpAPI的API 说明 概述 实体操作的对外 API 主要集中在 UFSoft.UBF.Business.dll 中,涉及到实体的新建,修改,删除,查询等操作,下面将分每个类进行详细说明,某些典型 API 将提供示例代码 Session UFSoft.UBF.Business.dll 下的 Session 主要是定义一个持久化控制的边界,并提交控制内实体的持久化操作,名空间为:UFSoft.UBF.Business 方法 public static Session Open() 新开一个 Session public void Commit() 提交 Session 内的将持久化的对象的新建/修改/删除操作 public void Create(IEntity entity) 将 entity 对象的状态设置为 UFSoft.UBF.PL.Engine.ObjectState.Inserted,并加入到当前的 session 中 参数: entity 为新建的对象 public void Modify(IEntity entity) 将 entity 对象的状态设置为 UFSoft.UBF.PL.Engine.ObjectState. Updated,并加入到当前的 session 中 参数: entity 为修改的对象 public void Remove(IEntity entity) 如果当前 session 有这个 entity,且状态为 insert,则从当前 session 中移出这个 对 象 , 其 他 情 况 下 , 将entity对 象 的 状 态 设 置 为UFSoft.UBF.PL.Engine.ObjectState. Deleted,并加入到当前的 session 中 参数: entity 为删除/移出 session 的对象 public void InList(IEntity entity) 将 entity 加入到当前的 session 中 参数: entity 为要加入 session 的对象 示例代码: objA = A_Ass1to1.Create(); objA.Name_A_1to1 = "Test"; using (ISession s = Session.Open()) { s.InList(objA); s.Commit(); } Assert.IsNotNull(A_Ass1to1.Finder.Find("ID = '" + objA.ID + "'")); public void DeList(IEntity entity) 将 entity 从 session 中移出 参数: entity 为移出 session 的对象 示例代码: using (ISession s = Session.Open()) { objA = A_Ass1to1.Create(); objA.Code_A_1to1 = 333; s.DeList(objA); s.Commit(); } Assert.IsNull(A_Ass1to1.Finder.Find("ID = '" + objA.ID + "'")); Entity UFSoft.UBF.Business.dll 下的 Entity 是业务实体的基类,主要描述实体对象的基本结构,实体对象的初始化等工作,名空间为 UFSoft.UBF.Business 属性 public bool NeedPersistable 是否需要持久化标志,为 true 表示需要持久化,可 set/get public abstract IClassKey ClassKey 实体所对应的元数据信息,只能 get public IObjectValue Values 实体的值集合,只能 get public IObjectValue Relations 实体的关系集合 ,只能 get public UFSoft.UBF.PL.Engine.ObjectState SysState 实体的状态,为枚举对象,开发人员主要关心以下 4 个枚举值: Inserted,Updated,Deleted,Unchanged,分别对应实体的新建,修改,删除,不变化(查询返回的初始状态) public IObjectOriginal OriginalData 实体带有一个 OriginalData 的属性,保存实体在数据库中的原始值,OriginalData反映的是实体在数据库中的映像,初始值是一个空的实体对象,只有在查询,新建和修改操作成功后,才会刷新 OriginalData,保持和数据库一致,需要详细说明的是,新建和修改时刷新 OriginalData 的动作在基类的 OnInserted 事件和 OnUpdated 事件之后,所以,在生成的 XXX Extend.cs 文件中,如果在后事件中要访问旧值,需要注意前后顺序 方法 public IPersistableObject Clone() 新建一个实体,将源实体的所有属性拷贝到这个新建的实...