今天就跟大家聊聊有關(guān)VB.NET中怎么實(shí)現(xiàn)數(shù)據(jù)實(shí)體層,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比遷安網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式遷安網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋遷安地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。
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. 集合類(lèi)。Typed-Dataset本身就是個(gè)集合類(lèi),提供添加,刪除,修改,查找單個(gè)類(lèi)的方法
當(dāng)然也有缺點(diǎn),任何事物都無(wú)法十全十美,比如很難從中派生出子類(lèi),實(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)來(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。