freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

用友u9-ubf應(yīng)用開發(fā)手冊(編輯修改稿)

2024-11-24 17:37 本頁面
 

【文章內(nèi)容簡介】 alData 是在查詢后刷新,對于刪除, OriginalData 沒什么意義,取決于刪除對象的加載方式,簡單說,就是在 OnSetDefaultValue/ OnInserting/ OnInserted 中,新建對象的OriginalData 是一個(gè) id 為 0 的空實(shí)體對象,在 OnSetDefaultValue/ OnUpdating / OnUpdated 中,修改對象的 OriginalData 是舊對象 ? 為什么我訪問某實(shí)體對象的 OriginalData 的屬性為空 首先,看 OriginalData 對象的 ID,如果為 0,表示是一個(gè)空對象,所有的屬性為默認(rèn)值,請參考 OriginalData 刷新的時(shí)機(jī)判斷這個(gè)訪問操作是不是新建,這個(gè)對象是標(biāo)準(zhǔn)的查詢出來的還是通過 CopyTo 的方式構(gòu)造的(實(shí)體基類的 CopyTo 不涉及 OriginalData) 如果 OriginalData 有有效的 ID,檢查這個(gè)對象的加載方式,看看是不是特殊的加載 方式引起屬性為空 ? OriginalData 的關(guān)聯(lián)對象 OriginalData 和 CopyTo 方法很類似,只完整實(shí)現(xiàn)了對基本屬性的拷貝,對于關(guān)聯(lián)實(shí)體,實(shí)際上是不拷貝的,這樣,出現(xiàn) 的訪問方式,對 bEntity,是懶加載上來的 實(shí)體的狀態(tài) SysState 實(shí)體的狀態(tài),為枚舉對象,開發(fā)人員主要關(guān)心以下 4 個(gè)枚舉值: Inserted, Updated, Deleted,Unchanged,分別對應(yīng)實(shí)體的新建,修改,刪除,不變化 (查詢返回的初始狀態(tài) ) 是否需要持久 化 NeedPersistable NeedPersistable 表示這個(gè)對象是否需要持久化,如果為 false,則這個(gè)對象將不會(huì)參與持久化 Session 基本概念和使用方式 在現(xiàn)在 UBF 中, Session 的本意是 work unit,即持久層的一個(gè)邊界,非常輕,主要用作批量提交,并標(biāo)識(shí)這次批量提交的邊界。在 session 里面的 CUD 操作會(huì)受持久層控制,而 seesion外實(shí)體是不受控制的,所以,做 CUD 操作要在 session 里面完成,一般建議一個(gè) BP 調(diào)用最好都有一個(gè)大 session 包住,這樣,在里面的操作就 不用多次開 Session,性能會(huì)好些 ? 關(guān)于事物, session 僅僅是一個(gè)持久層邊界,不涉及到事務(wù)等概念,目前 UBF 的事物支持在 AOP 上定義,可以在 BP 上設(shè)置 ? 當(dāng)發(fā)生 session 嵌套的情況時(shí),每次提交都是真正提交 using (ISession session1 = ()){ ... using (ISession session2 = ()){ ... ()。 //提交更改,但只是 Session2范圍內(nèi)的修改更新 } ()。 //提交更改,只處理 Session1的修改更新 } ? 當(dāng)前 ISession 可以通過 Session 的 Current 屬性獲得,每調(diào)用一次 Session 的 Open 方法,Current 屬性都會(huì)被更新 ? 在一個(gè) Session 范圍內(nèi),可以分步提交, using(ISession session1 = ()){ Ass1to1 objA1 = ()。 ()。 //提交 objA1 的新建動(dòng)作 Ass1to1 objA2 = ()。 ()。//提交 objA2 的新建動(dòng)作 } 對外接口 ? Create(IEntity entity) 將 entity 對象的狀態(tài)設(shè)置為 ,并加入到當(dāng)前的session 中 ? Modify(IEntity entity) 將 entity 對象的狀態(tài)設(shè)置為 . Updated,并加入到當(dāng)前的session 中 ? Remove(IEntity entity) 如果當(dāng)前 session 有這個(gè) entity,且狀態(tài)為 insert,則從當(dāng)前 session 中移出這個(gè)對象,其他情況下,將 entity 對象的狀態(tài)設(shè)置為 . Deleted,并加入到當(dāng)前的 session 中 ? InList(IEntity entity) 將 entity 加入到當(dāng)前的 session 中 objA = ()。 = Test。 using (ISession s = ()) { (objA)。 ()。 } ((ID = 39。 + + 39。))。 ? DeList(IEntity entity) 將 entity 從 session 中移出 using (ISession s = ()) { objA = ()。 = 333。 (objA)。 ()。 } ((ID = 39。 + + 39。))。 實(shí)體的操作 增加實(shí)體 ? 簡單實(shí)體: 模型如下,對實(shí)體 A 操作 ? 常規(guī)做法: 通常我們新建實(shí)體是要求在 session 里面建立: using (ISession session = ()) { obj = ()。 ... ()。 } ? 特殊做法: 遇到一些特殊情況,需要在 session 外面 new 一個(gè)對象時(shí)。這種做法很特殊,需要顯式在一進(jìn)入 sesssion 時(shí)調(diào)用 (obj),不推薦 A_Ass1to1 obj = new A_Ass1to1()。 using (ISession session = ()) { //一進(jìn)入 session,操作對象之前(包括設(shè)置實(shí)體的狀態(tài),賦值等所有的相關(guān)的操作之前) //要顯示調(diào)用 (obj) (obj)。 = 111。 = aaa。 ()。 } ? 主從實(shí)體: ? 1 對 1,其中 A_Com1c1 為主實(shí)體, B_Com1c1 為非主實(shí)體,注意紅字的寫法 A_Com1c1 objA。 B_Com1c1 objB。 using (ISession session = ()) { objA = ()。 = 1000。 = objA。 objB = (objA)。 = 1001。 = objB。 ()。 } ? 1 對多: 其中 A_Com1cN 為主實(shí)體, B_Com1cN 為非主實(shí)體,注意紅字的寫法。 對于非主實(shí)體,有兩種新建方式,這兩種方式都只支持 A_Com1cN objA。 B_Com1cN objB。 using (ISession session = ()) { objA = ()。 = 111。 //方式一 objB = (objA)。 = 222。 objB = (objA)。 = 333。 //方式二 objB = ()。 = 444。 objB = ()。 = 555。 ()。 } 查詢實(shí)體 (關(guān)于 OQL 和參數(shù)的用 法,見實(shí)體查詢這個(gè)章節(jié) ) ? 查單個(gè)實(shí)體:下面的操作為查詢一條ID為“111”的紀(jì)錄 FindByID 方法是先從緩存里面取,緩存沒有再去數(shù)據(jù)庫取 , A_Com1cN obj = . FindByID(111)。 Find 方法是直接從數(shù)據(jù)庫取 A_Com1cN objA = (ID = 111)。 ? 查實(shí)體集合 FindAll 方法是直接從數(shù)據(jù)庫取,參數(shù)為 OQL 語句 list = ()。 修改實(shí)體 ? 簡單實(shí)體 ? 常規(guī)做法 通常我們修改實(shí)體是要求在 session 里面建立 using(ISession session = ()){ Customer obj = . FindByID(id)。 if(obj!=null){ = new name。 } ... ... ()。 } ? 特殊做法 遇到一些特殊情況,需要外面?zhèn)鬟M(jìn)的實(shí)體 時(shí),需要顯式調(diào)用 session. Modify(obj),不推薦 using (ISession session = ()) { (obj)。 ()。 } ? 主從實(shí)體: ? 1 對 1 ? 1 對多 using (ISession session = ()) { objA = (ID = 39。 + + 39。, null)。 bList = 。 bList[0].Name_B_Com1cN = aaa。 bList[1].Name_B_Com1cN = bbb。 ()。 } 刪除實(shí)體 ? 簡單實(shí)體 using(ISession session = ()){ Customer obj = (id)。 if(obj!=null){ ()。 } ... ... ()。 } ? 主從實(shí)體: 刪主實(shí)體會(huì)自動(dòng)全部刪除從實(shí)體 using (ISession session = ()) { objA = (ID = 39。 + + 39。, null)。 //會(huì)自動(dòng)刪除 objA 及 objA 下所有的從實(shí)體 ()。 ()。 } ? 只刪除從實(shí)體: 刪除從實(shí)體有兩種方式,一種是調(diào)用從實(shí)體的 (0),一種是調(diào)用 (b),這兩種方式是等價(jià)的 using (ISession session = ()) { objA = (ID = 39。 + + 39。, null)。 bList = 。 B_Com1cN b = bList[2]。 (0)。 (b)。 ()。 } ? Qamp。A ? 對于一對多組合,我怎樣知道刪除的子對象 我們知道,對于一對多的情況,當(dāng)我們對子對象調(diào)用 Remove 方法時(shí),該對象會(huì)從當(dāng)前的集合中移出,即子對象的集合存放的是有效的對象,是新建和修改的對象。如果我們還需要訪問刪除的對象,可以從當(dāng)前的 List 的屬性 DelLists 中找到 。 ? 對一對多組合的子對象作集合 Clear 操作,怎么沒有刪除 需要注意,實(shí)體的刪除動(dòng)作只能用 Remove 方法, Clear 是集合本身的方法,不是持久層提供的刪除自對象的方法 實(shí)體的查詢 BE 的查詢這塊主要有 3 個(gè)查詢類, EntityDataQuery, EntityQuery 和 EntityViewQuery,EntityDataQuery 主要用于希望返回
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1