它是微軟封裝好一種ADO.NET數據實體模型,將數據庫結構以ORM模式映射到應用程序中。sql
優勢:數據庫
1.簡潔的Linq to Sql語句大大提升了開發人員的效率,不要再寫複雜的sql語句;數據結構
2.再也不須要再管應用程序如何去鏈接數據庫;函數
3.EF能夠用做用於數據服務和OData Service的基礎設施;blog
缺點:內存
1.因爲linq語句編譯以後就是sql,對於這種自動生成的sql語句沒法控制;開發
2.EF的運行機制會消耗大量內存,大大下降了程序運行效率,從而致使下降了用戶在客戶端的體驗效果;編譯
3.一旦數據結構發生變化,須要更新EF數據model;有時還可能會出現找不到更新過的實體類這種狀況;思維導圖
Lambda表達式
lambda:匿名函數,就是沒有名字的函數,簡言之,它時將一塊代碼賦值給一個變量,直接把lambda當成參數傳給函數。這樣就使得代碼變得更加整潔。
下面的思惟導圖講了,何時須要用到,還有使用lambda表達式的好處。效率
舉個栗子:
下圖是用了lambda表達式和沒有用的對比代碼:
是否是整潔、簡短了不少?
當有一個很簡單的方法時,咱們就能夠將這個方法刪掉,寫成匿名函數的形式去傳參。
LINQ集成查詢
全拼:Language Integrated Query——語言集成查詢
LINQ的優勢:
LINQ查詢與SQL查詢的順序:
LINQ先查詢from的優點:
如寫到from後 p in persons,以前都不肯定p的類型,因此age之類的屬性不會智能提示。
link先寫from,就多了智能感知(intelisence)的優點。
使用EF的優點