EF基礎的增刪改查VS2017(Database First)

1、ORM 是什麼

在瞭解Entity Framework是什麼前,咱們先的知道ORM是什麼,ORM是一種對象關係映射思想,咱們能夠這樣理解:數據庫

  • 其中O表明的是c#語言中的實體對象,object
  • M表明的是數據庫的表
  • R表明的是關係(表實體和表的相互轉化)

2、Entity Framework是什麼

簡稱EF是微軟對ORM(對象關係映射)思想的一種框架,底層仍然是ADO.NET,即對數據庫的訪問。c#

3、Entity Framework的真刪改查

開始操做前,先創建一個數據庫bash

  • 第一步,新建一個控制檯應用程序,右鍵添加新建項,添加一個ADO實體數據模型
  • 第二步,選擇Database First模式,數據庫優先

  • 第三步,新建鏈接,若是之前沒有使用過的話,新建一個數據庫鏈接

  • 第四步,一一對應添就行了

  • 第五步,點是,而且勾選,若是不點是的話,你對數據庫的一些訪問權限會被屏蔽,還得手動去設置,勾選也同樣(這裏可能描述不怎麼全面,不點是的話,咱們會發現訪問數據的鏈接字符串裏密碼會沒有,沒有了怎麼訪問數據庫呢?是否勾選,能夠解決咱們在不一樣項目中鏈接字符串的配置問題)

  • 第六步,選擇要操做的表

  • 第七步,在,相應的文件裏,咱們能夠看到相對於數據庫的上下文,和表實體
  • 第八步,實體化一個新的數據庫上下文,(數據庫上下文的意思就是,負責將對錶對象的操做弄到數據庫上),並添加到數據庫中 在這裏咱們能夠看到咱們數據庫上下文的名稱

namespace EFDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Add();
            Console.ReadKey();
        }
        private static void Add()
        {
            EFDemoEntities ef = new EFDemoEntities();//實例化上下文
            EFTableSet user = new EFTableSet()//實例化一個用戶類
            {
                Id=1,
                Name="張三",
                Age="19"
            };
            ef.EFTableSet.Add(user);//添加到數據對象裏
            ef.SaveChanges();//保存到數據庫
        }
    }
}
複製代碼
  • 第九步,查詢(lambda表達式查詢,和linq查詢),倆種方式性能都同樣啦,哪一個用的爽用哪一個嘍
private static void Select()
        {
            EFDemoEntities ef = new EFDemoEntities();//實例化上下文
            var list = ef.EFTableSet.Where(m => true).ToList();//lambda表達式查詢
            var list2 = from item in ef.EFTableSet select item;//link表達式查詢
            foreach (var item in list2)
            {
                Console.WriteLine(" "+item.Id+" "+item.Name+" "+item.Age);
            }
        }
複製代碼
  • 第十步,刪除,修改,刪除和修改都是的先查詢到這一行信息,存在,才能去刪除,不然的話,沒有,怎麼刪呢? 修改刪除都同樣,都是添加到上下文,將實體的對象的狀態修改一下就行了
private static void Update(int id)
        {
            EFDemoEntities ef = new EFDemoEntities();//實例化上下文
            EFTableSet user = ef.EFTableSet.Where(m => m.Id == id).FirstOrDefault();//FirstOrDefault查詢第一個
            if (user != null)
            {
                user.Name = "李四";
                user.Age = "20";//修改的內容
                ef.EFTableSet.Attach(user);//附加到上下文
                ef.Entry<EFTableSet>(user).State = System.Data.Entity.EntityState.Modified;//修改實體的狀態爲修改
                ef.SaveChanges();//保存到數據庫
                Console.WriteLine("修改爲功");
            }
            else
            {
                Console.WriteLine("查詢不到對象,沒法修改");
            }
        }

複製代碼

結束語,「簡潔是智慧的靈魂」

EF可以以相對傳統開發編寫更少的代碼來建立和維護應用程序框架

呼~可算寫完了,咱們使用EF能夠發現,他很是方便,不須要咱們去寫SQL語句了,並且他是強類型的,固然對於一些複雜的查詢咱們仍然可在EF中使用!性能

相關文章
相關標籤/搜索