Entity Framework學習(二)基本操作


我們一般對數據主要有增刪查以及更新這幾中基本操作形式,本文就以前面的文章中的代碼為例,簡單的介紹一下在Entity Framework中基本操作的使用方法。

查詢

1. 通過linq語句查詢

    var query = from b in db.Blogs
                where b.BlogId == 1 && b.Name == "my blog"
                select b;

    var blog = query.FirstOrDefault();

這種方式的好處是可以類似Sql語句一樣使用非常復雜的查詢條件,對於復雜的查詢來說非常給力。

2. 使用Find函數通過主鍵查詢

    var blog = db.Blogs.Find(1);

這種方式類似於字典式的查詢,通過主鍵查詢到數據;是我們使用過程中用得最多的一種方式。在使用Find查詢時,如果指定的主鍵無法查詢到結果,則返回null,不會拋異常。

 

添加:

    db.Blogs.Add(new Blog() { BlogId = 2, Name = "test2" });
    db.SaveChanges();

添加操作和我們操作集合是一樣的,不過這里需要調用一下SaveChanges函數將變更保持到數據庫。

 

更新:

    var blog = db.Blogs.Find(1);
    blog.Name = "test1";
    db.SaveChanges();

更新分為三步:查詢數據、修改數據、保存結果;還是比較簡單的。

 

刪除:

    var blog = db.Blogs.Find(1);
    db.Blogs.Remove(blog);
    db.SaveChanges();

刪除也是分為三步:查詢數據、刪除數據、保存結果。需要注意的是,如果在Remove中傳入null函數,則會拋異常。

 

批量刪除和批量更新:

批量刪除和批量更新在我們常規的集合操作中基本上用不到,但在Sql操作中卻是一個非常常見的操作。從理論上來講我們可以通過Lambda表達式非常優雅的實現這一操作,但EntityFramework卻不支持,只能通過執行sql語句來刪除。這也是EntityFramework的一個一直被人詬病的地方。

不過得益於C#靈活而強大的語法,已經有人通過擴展函數來實現這一功能,感興趣的可以看下老趙的使用Lambda Expression批量刪除數據這篇文章,我這里就不多講了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM