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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Code First, Database First, Same Time區(qū)別

2019-11-17 01:39:50
字體:
供稿:網(wǎng)友

Code First, Database First, Same Time區(qū)別

Code First, Database First, Same Time是我理解的asp.net mvc中用到的三種model與數(shù)據(jù)庫對(duì)應(yīng)的方式,肯定是不全面的,理解也有些狹隘,今后隨著自己的理解加深再來修改這篇帖子吧。這三種方式在 (www.helpqy.com)中有應(yīng)用,這里來自我總結(jié)一下:

【Code First】

即先寫好模型類,然后通過EF自動(dòng)生成數(shù)據(jù)庫及相應(yīng)的表。使用MVC自動(dòng)創(chuàng)建的模板頁時(shí),實(shí)際上就使用了Code First。當(dāng)你打開新建工程的時(shí)候可以看到,是沒有數(shù)據(jù)庫存在的,當(dāng)你在運(yùn)行的頁面中注冊(cè)新賬號(hào)時(shí),系統(tǒng)會(huì)自動(dòng)根據(jù)web.config中的配置、applicationDbContext中設(shè)置的連接字符串以及模型類來生成數(shù)據(jù)庫和表。至于具體怎么生成的,在我的另外一篇帖子里【將SQL SERVER數(shù)據(jù)庫改成MySQL】有具體的實(shí)現(xiàn)代碼,實(shí)際上是通過數(shù)據(jù)庫的Initilizer類來創(chuàng)建數(shù)據(jù)庫的。

通過這種方式創(chuàng)建的數(shù)據(jù)庫,在模型類中的成員被修改后,還可以通過VS的"程序包管理器控制臺(tái)"來同步到數(shù)據(jù)庫,只需要采用數(shù)據(jù)遷移中的Enable-Migrations, Add-Migrations "XXX"和Update-Database三個(gè)步驟即可實(shí)現(xiàn)數(shù)據(jù)庫和模型類的同步。

【Database First】

即先創(chuàng)建好數(shù)據(jù)庫和表,然后新建ADO.NET實(shí)體數(shù)據(jù)模型文件edmx,根據(jù)VS的引導(dǎo),選擇已經(jīng)創(chuàng)建好的數(shù)據(jù)庫的某一個(gè)表作為數(shù)據(jù)源,模型類會(huì)被自動(dòng)創(chuàng)建出來。

【Same Time】

Same Time 是我自己想出的詞兒,很不專業(yè),就是自己的一個(gè)總結(jié)。即在代碼側(cè),模型中的ApplicationUser已經(jīng)創(chuàng)建好了,想另外增加其它的類以及在已有數(shù)據(jù)庫中創(chuàng)建對(duì)應(yīng)的表,這時(shí)需要注意一下幾點(diǎn):

(1) 在類的頂部加上[Table('"xxxx表名")]以讓該類與表相關(guān)。

(2) 在主鍵字段前面加上[Key]屬性。

(3) 如果表中存在多個(gè)主鍵,在主鍵上除開添加[Key]屬性以外,還需要添加[Column(Order = XX列號(hào))]屬性,以表明不同主鍵的順序。否則會(huì)出現(xiàn)“無法確定組合主鍵排序”的錯(cuò)誤。

(4) 新增加的類可以不用放在ApplicationDbContext中,可以創(chuàng)建DataContext來建立Context模型,然后通過linq to sql來訪問,但是在實(shí)際部署時(shí),這種方式會(huì)出現(xiàn)訪問沖突錯(cuò)誤,因此還是建議在ApplicationDbContext中,定義該新建模型類的DbSet,然后通過ApplicationDbContext這個(gè)統(tǒng)一的入口來訪問。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潍坊市| 乐都县| 沙洋县| 定边县| 永城市| 巴林左旗| 巫溪县| 石林| 安福县| 洪湖市| 特克斯县| 永顺县| 潜江市| 沅江市| 民权县| 蛟河市| 邓州市| 扎囊县| 阿拉善右旗| 兴城市| 鄂托克前旗| 通榆县| 佳木斯市| 岳西县| 盈江县| 昌江| 巴马| 通海县| 临泽县| 昌平区| 永和县| 丰镇市| 临城县| 曲麻莱县| 长海县| 宁国市| 汉中市| 大足县| 赣榆县| 泽库县| 靖宇县|