Linq基礎知識小記四之操作EF

2021-09-07 15:02:40 字數 1633 閱讀 1360

1、ef簡介

ef之於linq,ef是一種包含linq功能物件關係對映技術.ef對資料庫架構和我們查詢的型別進行更好的解耦,使用ef,我們查詢的物件不再是c#類,而是更高層的抽象:entity data model,這提供了額外的靈活性,但在效能和簡單性上面也會有所損失.

ef的優點:在資料庫架構和實體類之間的對映提供了更好的靈活性,還通過程式支援除了sqlserver之外的資料庫.

linq to sql之於ef

linq to sql和ef師出同門,ef支援linq to sql幾乎同樣的查詢功能,所以在使用linq to sql學到的查詢技術同樣適用於ef,linq to sql是乙個輕量級的orm框架,旨在為microsoft sql server資料庫提供快速的應用程式開發,其優點是易於使用、簡單、高效能.

2、ef實體類

ef允許我們使用任何類來表示資料(但是必須實現特定的介面來實現如導航屬性等的功能),如下面的ef實體類customer類,他被對映到了資料庫中的customer表

public

partial

class

customer

[edmscalarproperty(entitykeyproperty = false, isnullable = false

)]

public

string name

}public

partial

class

customer

[required,stringlength(

30)]

public

string name

}

兩中表示方法都可以,但是引用的命名空間並不相同,具體的關於跟多的屬性配置細節請參考ef codefirst 約束配置

注:上面的單個類並不能單獨的使用,因為我們在使用ef時,並不是直接查詢資料庫,而是查詢乙個更高層的模型,該模型叫做entity data model(edm),所以我們需要莫種方法來描述edm,edm通常是由乙個以.edmx為副檔名的xml檔案來描述的,它包含了以下三個部分

這個在我的ef基礎知識小記一也有介紹.

建立乙個edmx最簡單的方法就是在visual studio中新增乙個」ado.net entity data model」 專案,然後就是根據提示來安裝.這種方法不但生成了.edmx檔案,還為我們生成實體類,ef中的實體類對應edm中的概念模型.ms提供了乙個視覺化工具來幫助我們生成edm.通過設計器我們可以任意的設計edm中表和實體間的關係,當然也可以通過改寫.edmx檔案來調整我們edm,通過設計器和修改edmx我們可以完成一下功能:

1、對映乙個表到多個實體

2、對映多個表到乙個實體

3、通過orm領域流行的三種標準策略來對映繼承的型別

的三種標準策略包括:

表到層次型別:單個表對映到乙個完整的類繼承層次結構,表中的乙個型別辨別列用來指示每一行資料應該對映到何種型別.

表到型別:單個表對映到單個型別,這意味這繼承型別會被對映到多個表,當我們查詢乙個類似的entity時,ef通過連線(join)來合併所有的基型別.(聯結查詢)

表到具體型別:單獨的表對映到每個具體的型別,這意味著乙個基型別將會被對映到多個表,當我們查詢entity時,ef通過生成union(聯結)來合併資料.

Linq基礎知識之延遲執行

linq中的絕大多數查詢運算子都有延遲執行的特性,查詢並不是在查詢建立的時候執行,而是在遍歷的時候執行,也就是在enumerator的movenext 方法被呼叫的時候執行,大說數linq查詢操作例項方法返回的都是ienumerable,所以只有在使用foreach遍歷的時候,查詢方法才能被真正的執...

linux 基礎知識小記

日期與時間命令 date 日曆的命令 cal 計算器 bc 要使用quit退出 在命令列模式裡執行命令時,會有兩種主要情況 一種是該命令會直接顯示結果然後回到命令提示符等待下乙個命令的輸入 date 一種是進入到該命令環境,直到結束該命令才回到命令提示符環境 bc tab熱鍵 ca tab tab ...

E1基礎知識

1 e1簡介 一條e1是 2.048m 的鏈路,用 pcm編碼。乙個e1 的幀長為 256個 bit,分為32 個時隙,乙個時隙為8個 bit。每秒有8k個 e1的幀通過介面,即 8k 256 2048kbps 每個時隙在 e1幀中佔 8bit 8 8k 64k 即一條 e1中含有32個 64k。2...