EF-CodeFirst模式

EF.png

EF簡介

? EF全稱是Entity Framework,是微軟官方提供的ORM(Object Relational Mapping 對象關(guān)系映射)工具梆靖,ORM讓開發(fā)人員節(jié)省數(shù)據(jù)庫訪問的代碼時間育特,將更多的時間放到業(yè)務(wù)邏輯層代碼上。EF提供變更跟蹤、唯一性約束谎僻、惰性加載间影、查詢事物等。開發(fā)人員使用Linq語言辰妙,對數(shù)據(jù)庫操作如同操作Object對象一樣省事。

? EF由三種使用模式:1. Code First模式:由實體類生成數(shù)據(jù)庫結(jié)構(gòu)甫窟;2. Model First模式:通過數(shù)據(jù)庫可視化設(shè)計器設(shè)計數(shù)據(jù)庫密浑,并生成實體類;3. Database First模式:由數(shù)據(jù)庫生成實體類粗井。

Code First模式

Code First模式我們稱之為“代碼優(yōu)先”模式肴掷,是從EF4.1開始新建加入的功能敬锐。使用Code First模式進行EF開發(fā)時開發(fā)人員只需要編寫對應(yīng)的數(shù)據(jù)類(其實就是領(lǐng)域模型的實現(xiàn)過程),然后自動生成數(shù)據(jù)庫呆瞻。這樣設(shè)計的好處在于我們可以針對概念模型進行所有數(shù)據(jù)操作而不必關(guān)系數(shù)據(jù)的存儲關(guān)系台夺,使我們可以更加自然的采用面向?qū)ο蟮姆绞竭M行面向數(shù)據(jù)的應(yīng)用程序開發(fā)。

? Code First模式的使用:

在Vs2017中新建一個名為EFDemo的控制臺應(yīng)用程序項目如下新建一個user類痴脾,和一個UserContext類:

EFDemo解決方案.png

User類:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace EFDemo {
    public class User {
        [Key,Index]//設(shè)置Id為主鍵,并添加索引
        public int Id { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
    }
}

UserContext類:

using System.Data.Entity;
namespace EFDemo {
    public class UserContext :DbContext{
        public UserContext() : base("EFDemoConnectionString") { }

        public DbSet<User> User { get; set; }
    }
}

在建立UserContext中必須繼承自 System.Data.Entity.DbContext類,才能有對數(shù)據(jù)的CRUD操作, 要使用DbContext類必須引用EntityFramework包.在NuGet中進行檢索安裝:

如下:

NuGet-EF.png

運行Main方法后,將自動生成數(shù)據(jù)庫:

using System;
using System.Linq;

namespace EFDemo {
    class Program
    {
        static void Main(string[] args)
        {
            using(var context = new UserContext()) {
                var user = new User {
                    Id = 1,
                    Name = "user",
                    Password = "123",
                };
                context.User.Add(user);//新增一條數(shù)據(jù)
                context.SaveChanges();//保存更改.每一次對數(shù)據(jù)庫的CUD操作都應(yīng)該使用此方法
                var query = from a in context.User
                            where a.Id == 1
                            select a;//Linq 語句用戶快速查詢
                Console.Write($"UserId:{user.Id},UserName:{user.Name   },UserPassword:{user.Password}");
                Console.ReadKey();
            }
        }
    }
}

結(jié)果展示:

Console結(jié)果展示.png

數(shù)據(jù)庫展示:

數(shù)據(jù)庫展示1.png
數(shù)據(jù)庫展示2.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颤介,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赞赖,更是在濱河造成了極大的恐慌滚朵,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件前域,死亡現(xiàn)場離奇詭異辕近,居然都是意外死亡,警方通過查閱死者的電腦和手機匿垄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門移宅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椿疗,你說我怎么就攤上這事漏峰。” “怎么了届榄?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵浅乔,是天一觀的道長。 經(jīng)常有香客問我铝条,道長靖苇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任班缰,我火速辦了婚禮贤壁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鲁捏。我一直安慰自己芯砸,他們只是感情好萧芙,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布给梅。 她就那樣靜靜地躺著,像睡著了一般双揪。 火紅的嫁衣襯著肌膚如雪动羽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天渔期,我揣著相機與錄音运吓,去河邊找鬼渴邦。 笑死,一個胖子當(dāng)著我的面吹牛拘哨,可吹牛的內(nèi)容都是我干的谋梭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼倦青,長吁一口氣:“原來是場噩夢啊……” “哼瓮床!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起产镐,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隘庄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后癣亚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丑掺,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年述雾,在試婚紗的時候發(fā)現(xiàn)自己被綠了街州。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡绰咽,死狀恐怖菇肃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情取募,我是刑警寧澤琐谤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站玩敏,受9級特大地震影響斗忌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旺聚,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一织阳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砰粹,春花似錦唧躲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嵌器,卻和暖如春肛真,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背爽航。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工蚓让, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乾忱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓历极,卻偏偏與公主長得像窄瘟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子趟卸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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