国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MVC系列學習(九)-DTO的使用

2019-11-17 02:25:21
字體:
來源:轉載
供稿:網友

MVC系列學習(九)-DTO的使用

本次學習用的數據庫,如下

image

1.什么是DTO:DataTransferObject

即數據傳輸對象,服務端的客戶端的通信,自動定義個小的實體類,里面只包含我們需要傳輸的屬性

2.不用DTO會有什么問題

a.在用javaScriptSerializer時,會報錯

原因:Teacher實體中有外鍵實體TeachClass,而TeachClass中又有一個Teacher的集合屬性,然后會一直循環的查詢,出現死循環

image

b.使用json返回數據時,會出錯

image

image

3.使用DTO解決問題

現在問題:

在序列化Teacher對象時,會去找外鍵實體TeachClass;而去找TeachClass對象時,又會重新找Teacher,一直到循環。

image

開始解決:

a.定義DTO類,解決死循環

我們可以定義個新的TeachClass類,它里面不包含會引起死循環的屬性,即沒有ICollection<Teacher>屬性。此處我們也對Teacher重新聲明一個類。

image

b.定義部分類,方便添加額外方法

死循環問題就這么解決了,這就是DTO,簡單吧。接下來,我們可能很多地方要用到序列化,那我們為了方便,直接在類的內部定義一個方法,自己序列化自己。但是問題又來了,因為實體類是EF生成的,每次我們點擊保存,EF就會按照tt模板xml配置信息,重新初始化類,我們寫的方法就白寫了。這個時候,我們想到了部分類,在部分類中一個序列化該類的方法。

image

有個主意事項,因為EF在找類時是根據文件名來找,所以此處的類名 不能與 類文件名相同

image

c.開始使用自己定義的DTO類

發現下載程序正常運行,未報任何異常,搞定

image


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 育儿| 辰溪县| 平原县| 霍邱县| 昆山市| 德州市| 安仁县| 嘉荫县| 酒泉市| 花莲市| 克什克腾旗| 上饶市| 革吉县| 新竹县| 南阳市| 韶关市| 舟曲县| 高台县| 油尖旺区| 阳曲县| 鹤庆县| 珲春市| 诏安县| 宁河县| 龙州县| 绥芬河市| 东台市| 景德镇市| 施秉县| 通许县| 荆门市| 突泉县| 炎陵县| 陕西省| 仲巴县| 项城市| 潞城市| 柘城县| 郁南县| 饶阳县| 肇州县|