日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > EF

EF

來源:程序員人生   發布時間:2015-03-21 09:13:45 閱讀次數:4604次

EF作用
    ADO.NET的連接層和斷開連接層提供了1個架構,可以通過連接、命令、數據讀取器、數據適配器和dataset對象來進行查詢、插入、更新和刪除數據等操作。雖然這是1個10分優秀的架構,但他還是會迫使我們以1種與物理數據庫結構緊耦合的方式來處理數據。例如在使用連接層時,我們通常在數據讀取器中指定列名來便利每天記錄。而如果使用斷開連接層,則將會對dataset容器中的datatable對象的行列集合進行遍歷
    如果在斷開連接層中使用強類型的dataset或數據適配器,那末帶來的編程方面的抽象性是很有幫助的。首先,強類型的dataset使用類的屬性來表示表數據。其次,強類型的表適配器支持封裝了構造底層SQL語句的方法。

相比更新數據庫時使用1些SQL查詢來查找、更新,再將其發送回數據庫進行處理,使用ef可以簡單地修改對象的屬性,并保存其狀態。ef在運行時將自動更新數據庫
實體的作用
    前面說到強類型類成為實體。實體是將無力數據庫映照到業務領域的概念模型。這類模型的正式名稱為實體數據庫模型(EDM)。它是1組映照到無力數據庫的客戶端類,但是這些實體沒有必要與數據庫架構的命名約定完全1致。你完全可以根據需要調劑實體類,ef運行時將把這些唯1的名字映照到正確的數據庫架構。
    (大多數情況,客戶端實體類的名稱都與關系型數據庫表名相同。但你總是可以修改它的名稱使其與業務環境更符合)
EF基礎:
    EF API 和其他的ADO.NET 交互方式1樣,ef使用1個ado.net 數據提供程序來與數據存儲進行交互。所不同的是,在恩你個狗與ef api 交互之前,必須更新數據提供程序使其支持新的服務。除微軟SQLserver數據提供程序增加了必要的內容之外,system.data .entity .dll 程序集還包括了各種命名空間來解釋EF服務本身。EF API的兩個關鍵部份為 對象服務 和 實體客戶端。
    對象服務的作用:
        對象服務是ef的1部份,他在代碼中對客戶端進行控制。例如,對象服務跟蹤你會實體的更改、管理實體間的關系并提供將更改保存到數據庫的方法,和用xml或2進制序列化服務隊實體狀態進行持久化的方法。
        就編程而言,對象服務層對所有擴大entityObject積累的類進行管理
    實體客戶真個作用:
        EF API 的另外一個主要部份是實體客戶端層,她使用基本的ado.net 數據提供程序來建立數據庫連接、基礎實體狀態和linq 查詢生成sql語句、將數據庫數據映照到實體,和處理其他其他在不使用ef經常見的細節問題。
*.edmx文件的作用
   為了使entityframework api能夠將實體類數據正確映照到數據庫表數據,你需要定義適當的映照邏輯。在所有的數據模型驅動的系統中,實體、真實的數據庫和映照層都會被劃分為3個相干的部份:概念模型、邏輯模型和物理模型。
    概念模型:實體和她們呢之間的關系
    邏輯模型:將實體和關系(通過外鍵束縛)映照到表
    物理模型:通過指定的存儲細節(如表架構、表分割和索引)來表示特定的數據引擎的能力。
在ef中,這3層均寄存在基于xml格式的文件里。當使用vs集成的ef設計器時,會得到1個以*.edmx 為擴大名的文件(EDM為entity data model)。該文件包括實體、物理數據庫的xml描寫,并且介紹了如何在概念模型和物理模型之間映照這些信息。
    當使用visual studio編譯基于EF項目時,*.edmx 文件將生成3個獨立的文件:用于概念模型數據的*.csdl 、用于物理模型的*.ssdl 和用于映照層的*.msl .然后這3個基于xml的文件將以2進制資源的情勢綁定到利用程序中。編譯以后,.NET 程序集中將包括代碼庫中所調用的ef api的所有必要的數據。
ObjectContext和ObjectSet <T>類的作用
    ef的最后1個難點是objectContext類,它是system.Data .Objects 命名空間的1員。在生成*.emdx 文件時,你將得到映照到數據庫表的實體類和1個繼承自ObjectContext的類。該類通經常使用于對象服務與實體客戶端之間的交互。
    ObjectContext為自雷提供了大量的核心服務,包括保存所有更新的功能(用于數據庫更新)、調劑連接字符床、刪除對象、調用存儲進程、處理其他底層細節。
    ObjectContext的派生類作為1個容器,管理那些存儲在ObjectSet<T>集合中的實體對象。
匯總
    上圖創建的場景:對上下文的實體編寫了1個Linq查詢,該查詢被傳遞給對象服務,對象服務將linq命令轉換為實體客戶端可以理解的樹。然后,實體客戶端將樹轉化為ADO.NET提供程序的SQL語句。提供程序返回1個數據讀取器(如1個D不DataReader的派生對象),客戶端服務使用該讀取器(EntityDataReader)將數據傳入對象服務。終究C#代碼庫所得到的是實體數據庫的枚舉(IEnumberable<T>)。
    還有1種情況,如果你的C#代碼庫希望對客戶端服務創建的發送到數據庫的SQL語句進行更多地控制,你可以編寫C#代碼直接將Entity SQL傳遞給實體客戶端或對象服務。終究得到的也是1個IEnumberable<T>。
    這兩種情況下,你都必須使得客戶端服務理解*.edmx文件中的xml數據,即如何將數據庫院子映照到實體。最后要記住的是,客戶端(C#代碼庫)還可使用EntityDataReader直接從實體客戶端獲得數據。
        
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美gay网站 | 国产福利免费在线观看 | 亚洲精品一区二区三区婷婷月 | 国产日韩在线视频 | 中文字幕欧美在线 | 国产99视频在线观看 | 欧美伊人 | 在线观看日韩精品 | 免费观看成人 | 成人黄色电影在线观看 | 成人免费专区 | 91在线tv | 中国一级特黄毛片大片 | 国产九九精品 | 久久com| 国产农村1级毛片 | 成人免费一区二区三区视频网站 | 国产精品久久久一区 | 国产精品久久久久久一区二区三区 | 日韩一级免费观看 | 免费福利视频一区二区三区 | 久久国产一区二区三区 | 精久久久| 亚洲+变态+欧美+另类+精品 | 精品久久久久久久久久久久久久久久久 | 正在播放国产一区二区 | 成人黄色大片 | 国产成人在线播放 | 毛片久久 | 日韩欧美网站 | 精品视频在线看 | 极品美女高潮 | 91精品国产色综合久久不卡蜜臀 | 国产老女人精品毛片久久 | 成人久久久久久 | 成人免费视频播放器 | 亚洲精品一二三 | 日本三级视频在线观看 | 国产精品久久久久久 | 99re| 欧美a√ |