我在此存儲庫中創建了資料存取主題的範例。我有關於實體框架、資料優先、程式碼優先、Orm、資料庫建立等主題的範例和專案。
它是一個充當關係資料庫和物件導向程式設計(OOP)之間橋樑的工具。這座橋是我們使用物件模型來管理關係資料庫中的資訊的結構。簡而言之,它是微軟開發的一個框架,它將我們的物件連接到資料庫,並為我們交換資料。
透過將 LINQ(語言整合查詢)查詢與實體框架結合使用,我們可以對物件進行強大的查詢。 Entity框架提供的服務主要是變更追蹤、身分解析和查詢翻譯。作為一個非常簡單的範例,我們開發人員完全負責在經典 ADO.NET 應用程式中開啟和關閉連線。但是,當您使用實體框架時,您不會幹擾此類操作。您準備好查詢並透過實體框架將其傳送到資料庫。
實體框架為此使用 3 種不同的專案開發方法。
Model First = 此方法允許透過在 Visual Studio 上新增空模型檔案 (.edmx) 來設計此模型上的資料庫。編譯步驟中給出的腳本檔案建立資料庫。
Database First = 在這個方向上,我們必要的類別是由實體框架透過將先前建立的資料庫作為模型連接到專案來建立的。
在這個資料夾中,我首先展示了我的資料庫範例。 GitHub 頁面。
Code First = 此方法是我們透過在 Visual Studio 環境中開始建立類別來執行的方法。我們的資料庫是從這些類別派生的。在這裡,開發人員可以在建立類別時透過屬性來完成映射操作。順便說一句,映射過程是我們在表中定義約束的事件。除了屬性之外,我們還可以透過不同的方式執行這些操作。例如,Fluent Api 或 Fluent Validation 等工具廣泛用於 Mapping 操作。
使用實體框架庫,我們可以透過對資料庫中的表進行查詢來過濾資料。幾乎所有可以在 T-SQL 上執行的查詢都可以使用實體框架來完成。
這裡我展示了基本的選擇操作。 GitHub 頁面。
您也可以將 T-SQL 查詢和報表的整合功能與實體框架庫一起使用。
在這裡我展示了我們的基本聚合函數。 GitHub 頁面。
在Code First結構中,程式語言中的「類別」結構對應資料庫中的「表」結構,「屬性」結構對應資料庫中的「列」結構。並且可以對列設定某些條件或限制。
您可以在這裡查看我關於該主題的範例。 GitHub 頁面。
我建立了一個 vir 資料庫,您可以在此處使用。
你可以在這裡查看。 GitHub 頁面。
它是一種使我們的分層架構專案更有組織性、增加程式碼的可讀性、增強團隊合作並使錯誤管理更容易的結構。事實上,透過這種結構,我們已經使專案編寫成為一種標準。由於該結構由 3 個主要層組成,因此今天可以稱為多層架構結構。但它實際上依賴 3 個主要層。這些層是;
-- 資料層 -- 業務層 -- 表示層
在這裡,我建立了與我的資料庫 .GitHub Pages 相對應的實體。
在這裡我創建了我的基礎設施層.GitHub Pages。
我在這裡創建了我的 UI.GitHub Pages。
Dapper是Stackoverflow開發的微型ORM工具,支援多種資料庫。由於 orm 工具自己做了很多事情,這導致它們運行得有點慢。尤其是在交通繁忙的港口,它不是優選的。在這種情況下,Dapper 可能是首選。它是一個單一的“dll”。那什麼是映射介面呢?它也不需要任何設定檔。簡而言之,就是簡單、快速。在 Github 上開源發布並持續開發。
--Dapper最重要的特點是它非常好的效能。大多數時候,由於這個優點,它是首選。
--您可以輕鬆地執行查詢並將傳回的結果輕鬆綁定到物件。
--最重要的缺點是,由於查詢是內聯編寫的,因此很容易出錯。這點應該要引起注意。更糟的是,這些錯誤發生在運行時,而不是建置時。
--在 Dapper 中,我們做大部分事情。開發人員必須處理資料庫、我們的查詢、程式端的資產、物件的狀態。這大大增加了大型專案開發階段的開發和維護成本。
我嘗試在這個存儲庫中使用兩種方法。我在一個儲存庫中使用 Sql 處理程序,並在另一個儲存庫中直接在程式上編寫查詢。
-- 首先我用 SQL 建立了資料庫。
-- 之後,我使我的程式適合我將在程式中使用的方法。你可以從這裡看。 GitHub 頁面
--在我的程式中,我還建立了我的圖層和資產,以及我將在我的程式中使用的儲存庫。這裡重要的是給出我的程式以及我將在其中正確使用的參數。否則,我們會得到很多錯誤。你可以從這裡看。 GitHub 頁面
-- 我用「connection」建立了與資料庫的連線。你可以從這裡看。 GitHub 頁面
-- 我創建了最新的使用者介面並執行了我想要的操作。你可以從這裡看。 GitHub 頁面
在這裡,我編寫了將直接在 Sql 中執行我想要的操作的查詢。在這裡編寫查詢時確實需要非常小心。一個錯誤可能會浪費很多時間。至於參數,查詢中參數的符合值必須是正確的。但對我來說,Dapper 中的異常是不言自明的。輕鬆找出錯誤確實很有幫助。
你可以從這裡看。 GitHub 頁面
在這裡,我在使用者介面中顯示了我的操作。
你可以從這裡看。 GitHub 頁面