EF-CodeFirst實(shí)現(xiàn)過(guò)程+數(shù)據(jù)庫(kù)遷移

系列文章:

EF-ModelFirst實(shí)現(xiàn)過(guò)程+數(shù)據(jù)庫(kù)遷移???? http://www.reibang.com/p/2a53f318144d
EF-DBFirst實(shí)現(xiàn)過(guò)程??? http://www.reibang.com/p/eb84ec814926
建議學(xué)習(xí)路徑 DBFirst->ModelFirst->CodeFirst

思路:通過(guò)代碼編寫實(shí)體和關(guān)聯(lián)次氨,編寫上下文蚀苛,根據(jù)實(shí)體和關(guān)聯(lián)生成數(shù)據(jù)庫(kù)禁荸。

EF-CodeFirst的優(yōu)點(diǎn)

EF-CodeFirst相對(duì)于EF-ModelFirst和EF-DBFirst的有點(diǎn)在于菜秦,CodeFirst在數(shù)據(jù)庫(kù)已經(jīng)設(shè)計(jì)完成之后连锯,能夠較方便得再次對(duì)數(shù)據(jù)庫(kù)進(jìn)行更改(數(shù)據(jù)庫(kù)遷移技術(shù))撮竿。

關(guān)聯(lián)

1.Database First是基于已存在的數(shù)據(jù)庫(kù)泉手,利用某些工具(如VS提供的EF設(shè)計(jì)器)創(chuàng)建實(shí)體類铣口,數(shù)據(jù)庫(kù)對(duì)象與實(shí)體類的匹配關(guān)系等滤钱,你也可以手動(dòng)修改這些自動(dòng)生成的代碼及匹配文件。也就是從一個(gè)數(shù)據(jù)庫(kù)開始脑题,然后生成實(shí)體框架和相應(yīng)代碼件缸。
??? 2.Model First 是先利用某些工具(如VS的EF設(shè)計(jì)器)設(shè)計(jì)出可視化的實(shí)體數(shù)據(jù)模型及他們之間的關(guān)系,然后再根據(jù)這些實(shí)體叔遂、關(guān)系去生成數(shù)據(jù)庫(kù)對(duì)象及相關(guān)代碼文件他炊。
??? 3.Code First 這種方式需要先寫一些代碼,如實(shí)體對(duì)象已艰,數(shù)據(jù)關(guān)系等痊末,然后根據(jù)已有的代碼描述,自動(dòng)創(chuàng)建數(shù)據(jù)對(duì)象哩掺。但其實(shí)這種方法與Model First是非常類似的凿叠。我們自己寫的代碼,其實(shí)就是用代碼表示實(shí)體模型嚼吞,而Model First是用可視化的方式描述了實(shí)體模型盒件。

EF-CodeFirst的具體實(shí)現(xiàn)過(guò)程(以17-3-2課后作業(yè)為對(duì)象分析)

Step1:按需求新建若干實(shí)體Entity

BaseEntity基類


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF_CodeFirst_17_3_2.Model
{
??? public class BaseEntity
??? {
??????? public BaseEntity()
??????? {
??????????? CreateTime = DateTime.Now;
??????????? UpdateTime = DateTime.Now;
??????? }
??????? /// <summary>
??????? /// 創(chuàng)建ID
??????? /// </summary>
??????? public int ID { get; set; }
??????? /// <summary>
??????? /// 創(chuàng)建人
??????? /// </summary>
??????? public string CreateBy { get; set; }
??????? /// <summary>
??????? /// 創(chuàng)建時(shí)間
??????? /// </summary>
??????? public DateTime CreateTime { get; set; }
??????? /// <summary>
??????? /// 更新人
??????? /// </summary>
??????? public string UpdateBy { get; set; }
??????? /// <summary>
??????? /// 更新時(shí)間
??????? /// </summary>
??????? public DateTime UpdateTime { get; set; }
??? }
}

Classes班級(jí)實(shí)體

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF_CodeFirst_17_3_2.Model
{
?? public class Classes:BaseEntity
??? {
??????? /// <summary>
??????? /// 班級(jí)編號(hào)
??????? /// </summary>
??????? public int ClassNO { get; set; }
??????? /// <summary>
??????? /// 班級(jí)名稱
??????? /// </summary>
??????? public string ClassName { get; set; }
??????? /// <summary>
??????? /// 班主任ID
??????? /// </summary>
??????? public int MentorID { get; set; }
??????? /// <summary>
??????? /// 班主任名稱
??????? /// </summary>
??????? public virtual string MentorName { get; set; }
??????? /// <summary>
??????? /// 一個(gè)班級(jí)有多名學(xué)生
??????? /// </summary>
?????? public virtual List<Student> students { get; set; }
??? }
}
Course課程實(shí)體

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF_CodeFirst_17_3_2.Model
{
??? public class Course:BaseEntity
??? {
??????? /// <summary>
??????? /// 課程編號(hào)
??????? /// </summary>
??????? public int CourseNO { get; set; }
??????? /// <summary>
??????? /// 課程名稱
??????? /// </summary>
??????? public string CourseName { get; set; }
??????? /// <summary>
??????? /// 一個(gè)課程有多名學(xué)生
??????? /// </summary>
??????? public virtual List<Student> students { get; set; }
??????? /// <summary>
??????? /// 一門課程有多個(gè)教師
??????? /// </summary>
??????? public virtual List<Teacher> Teachers { get; set; }
??? }
}

學(xué)校School實(shí)體

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF_CodeFirst_17_3_2.Model
{
??? public class School : BaseEntity
??? {
??????? /// <summary>
??????? /// 學(xué)校編號(hào)
??????? /// </summary>
??????? public int SchoolNO { get; set; }
??????? /// <summary>
??????? /// 學(xué)校名稱
??????? /// </summary>
??????? public string SchoolName { get; set; }
??????? /// <summary>
??????? /// 校長(zhǎng)ID
??????? /// </summary>
??????? public int HeadmasterID { get; set; }
??????? /// <summary>
??????? /// 校長(zhǎng)名稱
??????? /// </summary>
??????? public string HeadmasterName { get; set; }
??????? /// <summary>
??????? /// 學(xué)校地址
??????? /// </summary>
??????? public string Address_new { get; set; }
??? }
}

學(xué)生Student實(shí)體

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF_CodeFirst_17_3_2.Model
{
??? public class Student:BaseEntity
??? {
??????? /// <summary>
??????? /// 學(xué)生編號(hào)
??????? /// </summary>
??????? public int StudentNO { get; set; }
??????? /// <summary>
??????? /// 學(xué)生名稱
??????? /// </summary>
??????? public string StudentName { get; set; }
??????? /// <summary>
??????? /// 一個(gè)學(xué)生屬于一個(gè)班級(jí)名稱
??????? /// </summary>
??????? public virtual Classes ClassName { get; set; }
??????? /// <summary>
??????? /// 一個(gè)學(xué)生有多門課程
??????? /// </summary>
??????? public virtual List<Course> Courses { get; set; }
??? }
}

還有 68% 的精彩內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舱禽,隨后出現(xiàn)的幾起案子炒刁,更是在濱河造成了極大的恐慌,老刑警劉巖呢蔫,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切心,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡片吊,警方通過(guò)查閱死者的電腦和手機(jī)绽昏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俏脊,“玉大人全谤,你說(shuō)我怎么就攤上這事∫叮” “怎么了认然?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵补憾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卷员,道長(zhǎng)盈匾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任毕骡,我火速辦了婚禮削饵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘未巫。我一直安慰自己窿撬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布叙凡。 她就那樣靜靜地躺著劈伴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪握爷。 梳的紋絲不亂的頭發(fā)上跛璧,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音新啼,去河邊找鬼赡模。 笑死,一個(gè)胖子當(dāng)著我的面吹牛师抄,可吹牛的內(nèi)容都是我干的漓柑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼叨吮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辆布!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起茶鉴,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锋玲,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后涵叮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惭蹂,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年割粮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盾碗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舀瓢,死狀恐怖廷雅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤航缀,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布商架,位于F島的核電站,受9級(jí)特大地震影響芥玉,放射性物質(zhì)發(fā)生泄漏蛇摸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一灿巧、第九天 我趴在偏房一處隱蔽的房頂上張望皇型。 院中可真熱鬧,春花似錦砸烦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至家破,卻和暖如春颜说,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背汰聋。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工门粪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烹困。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓玄妈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親髓梅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拟蜻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)枯饿,斷路器酝锅,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法奢方,內(nèi)部類的語(yǔ)法搔扁,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法蟋字,線程的語(yǔ)...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • 這個(gè)學(xué)期學(xué)校有了許多的改變稿蹲,特別是我們的作息時(shí)間有了很大的改變,比如吃飯時(shí)間變長(zhǎng)了鹊奖,而閱讀時(shí)間變短了场绿,而老師...
    逗筆no1閱讀 261評(píng)論 0 2
  • 這幾天老毛病又犯了,事情到來(lái)之前總是心神不寧熬拒,總感覺(jué)還有很多的方面沒(méi)有想到爷光,它會(huì)突然跳出來(lái)把你嚇一跳;總感覺(jué)還有很...
    一星若月閱讀 224評(píng)論 0 0
  • 最近小編有同事都紛紛想要買房啸盏,因?yàn)槭菃紊碇睾兀詫?duì)于面積比較小的房子還是比較關(guān)注的,所以看到在賣公寓樓的信息都會(huì)多關(guān)...
    2ff183455164閱讀 670評(píng)論 0 2