溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB.NET中怎么實(shí)現(xiàn)數(shù)據(jù)實(shí)體層

發(fā)布時(shí)間:2021-07-20 11:43:09 來(lái)源:億速云 閱讀:178 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)VB.NET中怎么實(shí)現(xiàn)數(shù)據(jù)實(shí)體層,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1. 數(shù)據(jù)綁定。可以直接和控件綁定,尤其是網(wǎng)格控件,在VB中是很困難的,除非增加個(gè)屬性來(lái)存放Recordset,這樣一來(lái)又要多增加方法來(lái)初始化Recordset,并且增加了實(shí)例化和封送處理的成本

2. 代碼自動(dòng)生成。少寫(xiě)很多代碼,尤其是當(dāng)表中字段很多的時(shí)候,并且自動(dòng)提供了序列化功能

3. 集合類。Typed-Dataset本身就是個(gè)集合類,提供添加,刪除,修改,查找單個(gè)類的方法

當(dāng)然也有缺點(diǎn),任何事物都無(wú)法十全十美,比如很難從中派生出子類,實(shí)例化成本高等。

在VB.NET數(shù)據(jù)實(shí)體層自動(dòng)生成Typed-Dataset時(shí),需要做些改動(dòng)使Entity更好的符合OO的特性

A、自動(dòng)生成的表對(duì)象和行對(duì)象是以DataTable和Row結(jié)尾的,這可以通過(guò)加如以下代碼來(lái)更改:在XML文件中的< xml:schema 節(jié)點(diǎn)加入:

xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:codegen="urn:schemas-microsoft-com:xml-msprop" 命名空間

B、重寫(xiě) < xs:choice maxOccurs="unbounded"> 節(jié)點(diǎn)后的< xs:element name="Tables”> 節(jié)點(diǎn) < xs:element name="Tables" codegen:typedName="Table" codegen:typedPlural="Tables">

C、由于自動(dòng)生成的代碼遇到某個(gè)字段為NULL時(shí)默認(rèn)是報(bào)錯(cuò),如想不報(bào)錯(cuò),需在每個(gè)Element節(jié)點(diǎn)定義中加入: nillable="true" codegen:nullValue="_null" 或nillable="true" codegen:nullValue="false" 或nillable="true" codegen:nullValue="1900-01-01T00:00:00"

D、Entity的粒度。在考慮實(shí)體對(duì)象的設(shè)計(jì)時(shí),“對(duì)象的粒度”是一個(gè)需要仔細(xì)考慮的問(wèn)題,個(gè)人喜歡粗粒度的Entity,這樣可以減少與數(shù)據(jù)庫(kù)的往返次數(shù),當(dāng)然也不是包含所有的表,這樣效率不高,比如Order,只需要Order 和OrderDetail 表,Product,SalesPerson就不需要了,當(dāng)然也可以用從dataset繼承的自定義類來(lái)作為Entity,但個(gè)人覺(jué)得一般情況下沒(méi)必要,畢竟MS的typed-dataset功能更多,而且實(shí)現(xiàn)起來(lái)也比較復(fù)雜。

看完上述內(nèi)容,你們對(duì)VB.NET中怎么實(shí)現(xiàn)數(shù)據(jù)實(shí)體層有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI