1. 程式人生 > 程式設計 >EF基礎的增刪改查VS2017(Database First)

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

一、ORM 是什麼

在瞭解Entity Framework是什麼前,我們先的知道ORM是什麼,ORM是一種物件關係對映思想,我們可以這樣理解:

  • 其中O代表的是c#語言中的實體物件,object
  • M代表的是資料庫的表
  • R代表的是關係(表實體和表的相互轉化)

二、Entity Framework是什麼

簡稱EF是微軟對ORM(物件關係對映)思想的一種框架,底層仍然是ADO.NET,即對資料庫的訪問。

三、Entity Framework的真刪改查

開始操作前,先建立一個資料庫

  • 第一步,新建一個控制檯應用程式,右鍵新增新建項,新增一個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中使用!