国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 磐石市| 千阳县| 上林县| 五常市| 凤山县| 集贤县| 普兰县| 仙居县| 阳谷县| 广汉市| 永川市| 兰州市| 四会市| 乌拉特前旗| 德州市| 青浦区| 新竹市| 周宁县| 亚东县| 东乌珠穆沁旗| 观塘区| 左权县| 黄大仙区| 新安县| 云霄县| 陇西县| 博客| 依兰县| 石河子市| 辽阳县| 新竹县| 郑州市| 罗平县| 泰顺县| 新竹市| 抚顺县| 呼和浩特市| 杨浦区| 余庆县| 贵定县| 普兰县|