国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第一單元 ORM 介紹

這篇具有很好參考價值的文章主要介紹了第一單元 ORM 介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需要有的知識點:

  1. c# 基礎以及c#高級基礎

  2. Ado.net 基礎

  3. SqlServer 以及MySQL (都需要高級部分)

  4. Asp.net Mvc Core 基礎

?

1. 新手的煩惱

(1) SQL 拼不對,錯還不會找

(2) 開發(fā)效率低

(3) 如果發(fā)現字段需要重命名,得挨個地方去修改

(4) 老板說要把SQLServer換成MySQL數據庫,并且需要快速上線,此時你想的不是快速上線,而是快速離職

?

ORM 框架基本解決了上述的所有問題。

?

2. 什么是ORM

ORM(Object-relational mapping),中文翻譯為對象關系映射,是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

第一單元  ORM 介紹

?

ORM框架的優(yōu)/缺點

優(yōu)點:

  1. 提高開發(fā)效率

  2. 更符合面向對象思想

  3. 可以快速重命名

  4. 可以無縫切換數據庫

缺點:

  1. 降低了系統(tǒng)的執(zhí)行效率

  2. 遇到很復雜的查詢時,顯得有些吃力

?

常見的ORM框架

  1. EntityFramework Core

  2. NHibnate(年代久遠)

  3. SqlSugger(當下比較流行)

  4. Dapper(半ORM)

  5. MyBatis.Net (需要寫一大堆的XML)

  6. MyBatisPlus (Java開發(fā)最流行)

?

選擇EntityFrameworkCore的原因:

  1. 微軟的親兒子, 對接了微軟的眾多其他需要數據訪問的框架,例如ASP.NET Identity,ASP.NET WebApi

  2. 全面支持LINQ查詢

  3. EFCore性能提升, 已非常接近原生的ADO.NET框架了

  4. 數據庫遷移功能 ,可以動態(tài)創(chuàng)建數據庫或者修改數據庫

?

3. EntityFrameworkCore概述

Entity Framework (EF) Core 是輕量化、可擴展、開源和跨平臺版的常用 Entity Framework 數據訪問技術。

EF Core 可用作對象關系映射程序 (O/RM),這可以實現以下兩點:

  • 使 .NET 開發(fā)人員能夠使用 .NET 對象處理數據庫。

  • 無需再像平常那樣編寫大部分數據訪問代碼。

EF Core 支持多個數據庫引擎,請參閱數據庫提供程序了解詳細信息。

1. 模型開發(fā)方式

對于 EF Core,使用模型執(zhí)行數據訪問。 模型由實體類和表示數據庫會話的上下文對象構成。 上下文對象允許查詢并保存數據。 有關詳細信息,請參閱創(chuàng)建模型

EF 支持以下模型開發(fā)方法:

  • 從現有數據庫生成模型(DbFirst)。

  • 對模型手動編碼,使其符合數據庫(DbFirst)。

  • 創(chuàng)建模型后,使用 EF 遷移從模型創(chuàng)建數據庫。 模型發(fā)生變化時,遷移可讓數據庫不斷演進(CodeFirst)。

?

2. EF O/RM 注意事項

雖然 EF Core 善長提取許多編程詳細信息,但還是有一些適用于任何 O/RM 的最佳做法,可幫助避免生產應用中的常見陷阱:

  • 若要在高性能生產應用中構建、調試、分析和遷移數據,必須具備基礎數據庫服務器的中級知識或更高級別的知識。 例如,有關主鍵和外鍵、約束、索引、標準化、DML 和 DDL 語句、數據類型、分析等方面的知識。

  • 功能和集成測試:請務必盡可能嚴密地復制生產環(huán)境,以便:

    • 查找僅在使用特定版本的數據庫服務器時應用才出現的問題。

    • 在升級 EF Core 和其他依賴項時捕獲中斷性變更。 例如,添加或升級 ASP.NET Core、OData 或 AutoMapper 等框架。 這些依賴項可能以多種意外方式影響 EF Core。

  • 通過代表性負載進行性能和壓力測試。 某些功能的不成熟用法縮放性不佳。 例如,多項集合包含內容、大量使用延遲加載、對未編制索引的列執(zhí)行條件查詢、對存儲生成的值進行大規(guī)模更新和插入、缺乏并發(fā)處理、大型模型、緩存策略不充分。

  • 安全評審:例如,連接字符串和其他機密處理、非部署操作的數據庫權限、原始 SQL 的輸入驗證、敏感數據加密。

  • 確保日志記錄和診斷充足且可用。 例如,適當的日志記錄配置、查詢標記和 Application Insights。

  • 錯誤恢復。 為常見故障場景(如版本回退、回退服務器、橫向擴展和負載平衡、DoS 緩解和數據備份)準備應急計劃。

  • 生成的遷移的詳細檢查和測試。 將遷移應用于生產數據前,應對其進行全面測試。 若表中包含生產數據,架構的形狀和列類型就不能輕易更改。 例如,在 SQL Server 上,對于映射到字符串和十進制屬性的列,nvarchar(max)decimal(18, 2) 極少成為最佳類型,但這些是 EF 使用的默認值,因為 EF 不了解你的具體情況。

?

4. Nuget 包

1. 包版本

請務必安裝 Microsoft 提供的所有 EF Core 包的同一版本。 例如,如果安裝了 5.0.3 版本的 Microsoft.EntityFrameworkCore.SqlServer,則所有其他 Microsoft.EntityFrameworkCore.* 包也必須為 5.0.3 版本。

此外,請確保所有外部包都與所使用的 EF Core 的版本兼容。 特別是,檢查外部數據庫提供程序是否支持你所使用的 EF Core 版本。 EF Core 的新主版本通常需要更新的數據庫提供程序。

警告

NuGet 不強制使用一致的包版本。 請始終仔細檢查你在 .csproj 文件或等效

?

2. 數據庫提供程序

EF Core 通過使用“數據庫提供程序”支持不同的數據庫系統(tǒng)。 每個系統(tǒng)都有自己的數據庫提供程序,而提供程序以 NuGet 包的形式提供。 應用程序應安裝其中一個或多個提供程序包。

下表列出了常見的數據庫提供程序。 有關可用提供程序的更全面列表,請參閱數據庫提供程序。

數據庫系統(tǒng) 配置示例 NuGet 程序包
SQL Server 或 Azure SQL .UseSqlServer(connectionString) Microsoft.EntityFrameworkCore.SqlServer
Azure Cosmos DB .UseCosmos(connectionString, databaseName) Microsoft.EntityFrameworkCore.Cosmos
SQLite .UseSqlite(connectionString) Microsoft.EntityFrameworkCore.Sqlite
EF Core 內存中數據庫 .UseInMemoryDatabase(databaseName) Microsoft.EntityFrameworkCore.InMemory
PostgreSQL* .UseNpgsql(connectionString) Npgsql.EntityFrameworkCore.PostgreSQL
MySQL/MariaDB* .UseMySql(connectionString) Pomelo.EntityFrameworkCore.MySql
Oracle* PLSQL .UseOracle(connectionString) [Oracle.EntityFrameworkCore](

這些是由社區(qū)開發(fā)和提供的熱門高質量開源提供程序。 列出的其他提供程序由 Microsoft 提供。

仔細考慮是否使用內存中提供程序。 它不是為生產用途而設計的,也可能不是用于測試的最佳解決方案。

?

3. 工具

 $ dotnet tool --help

install <PACKAGE_ID> 安裝全局或本地工具。本地工具將被添加到清單并還原。
uninstall <PACKAGE_ID> 卸載全局工具或本地工具。
update <PACKAGE_ID> 更新全局工具。
list 列出全局或本地安裝的工具。
run <COMMAND_NAME> 運行本地工具。
search <搜索詞> 在 nuget.org 中搜索 dotnet 工具
restore 還原本地工具清單中定義的工具。

使用用于 EF Core 遷移現有數據庫中的反向工程(基架)的工具需要安裝相應的工具包:

  • 可在 Visual Studio 包管理器控制臺中使用的 PowerShell 工具的 Microsoft.EntityFrameworkCore.Tools

  • 跨平臺命令行工具的 dotnet-efMicrosoft.EntityFrameworkCore.Design

請參閱 Entity Framework Core 工具參考,詳細了解如何使用 EF Core 工具,包括如何在項目中或在全局范圍內正確安裝 dotnet-ef 工具。

$ dotnet tool install --help

-g, --global 為當前用戶安裝工具。
--local 安裝工具并將其添加到本地工具清單(默認)。
--tool-path <PATH> 將安裝工具的目錄。如果目錄不要放置測試結果的目錄。若不存在,將創(chuàng)建指定目錄。存在,將創(chuàng)建該目 錄。
--version <VERSION> 要安裝的工具包版本。
--configfile <FILE> 要使用的 NuGet 配置文件。
--tool-manifest <PATH> 清單文件的路徑。
--add-source <SOURCE> 添加其他要在安裝期間使用的 NuGet 包源。
--framework <FRAMEWORK> 要安裝工具的目標框架。
--prerelease 正在確定是否包括預發(fā)行包。
--disable-parallel 防止并行還原多個項目。
--ignore-failed-sources 將包源失敗視為警告。
--no-cache 不要緩存包和 HTTP 請求。
--interactive 允許命令停止和等待用戶輸入或操作(例如,用以完成身份驗證)。
-v, --verbosity <LEVEL> 設置 MSBuild 詳細程度。允許值為 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。
-a, --arch <arch> 目標體系結構。
-?, -h, --help 顯示命令行幫助。

安裝.Net CLI

詳細步驟,請看第四單元 :數據遷移部分

$ dotnet tool install -g --version 6.0.4 dotnet-ef
常用選項
選項 Short 說明
--json ? 顯示 JSON 輸出。
--context <DBCONTEXT> -c 要使用的 DbContext 類。 僅類名或完全限定命名的空間。 如果省略此選項,EF Core 將查找上下文類。 如果有多個上下文類,則此選項是必需的。
--project <PROJECT> -p 目標項目的項目文件夾的相對路徑。 默認值是當前文件夾。
--startup-project <PROJECT> -s 啟動項目的項目文件夾的相對路徑。 默認值是當前文件夾。
--framework <FRAMEWORK> ? 目標框架目標框架名字對象。 當項目文件指定了多個目標框架,并且你想要選擇其中一個目標框架時,請使用此選項。
--configuration <CONFIGURATION> ? 生成配置,例如 DebugRelease。
--runtime <IDENTIFIER> ? 要為其還原包的目標運行時的標識符。 有關運行時標識符 (RID) 的列表,請參閱 RID 目錄
--no-build ? 請勿生成項目。 旨在在生成處于最新狀態(tài)時使用。
--help -h 顯示幫助信息。
--verbose -v 顯示詳細輸出。
--no-color ? 請勿為輸出著色。
--prefix-output ? 具有級別的前綴輸出。

?

?

視頻配套鏈接:EFCore 與 WebAPI - 網易云課堂 (163.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-747551.html

到了這里,關于第一單元 ORM 介紹的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 關于磁盤需要掌握得知識點

    扇區(qū)是數據的存儲單元,物理盤是實際的硬盤驅動器,而位圖則是記錄磁盤陣列中扇區(qū)狀態(tài)的數據結構。它們之間的關系是,物理盤組成了磁盤陣列,位圖用于跟蹤每個物理盤中的扇區(qū)狀態(tài)。 物理盤是指實際的硬盤驅動器,它們是磁盤陣列中的物理存儲設備。在磁盤陣列中,

    2024年02月10日
    瀏覽(32)
  • .NET 主流 ORM 功能介紹 大全 最新

    ? 下面是3款.NET 使用最多的ORM,來自公眾號投票結果 ,數據比較真實可靠,也可去搜索公眾號繼續(xù)投票 ?2023年11月投票結果 測試項目 發(fā)布時間 微信公眾號投票 (追逐時間光者) 使用難度 功能 性能 SqlSugar? orm 2014 26%? 491票 適中 全 中高 EFCore? ?orm 2016 36%? 663票 較難 全 中高

    2024年02月05日
    瀏覽(14)
  • Django后端開發(fā)——模型層及ORM介紹

    Django后端開發(fā)——模型層及ORM介紹

    B站網課:點擊藍色字體跳轉 或者復制鏈接到瀏覽器打開:https://www.bilibili.com/video/BV1vK4y1o7jH?p=15vd_source=597e21cf34ffcdce468ba00be2177e8a 一般都有python3-dev,沒有default-libmysqlclient-dev,需要安裝default-libmysqlclient-dev 然后安裝mysqlclient 若安裝default-libmysqlclient-dev時報錯‘pkg-config: not found’

    2024年02月19日
    瀏覽(649)
  • 【考研數學】數學“背誦”手冊 | 需要記憶且容易遺忘的知識點

    【考研數學】數學“背誦”手冊 | 需要記憶且容易遺忘的知識點

    復習到后期,去做到前面內容的題目時,有一些需要記憶的結論就比較模糊,比如微分方程的特解形式、施密特正交、各種分布的概率密度等等。我便把這些模糊的點都記錄下來了,整理在一起,方便隨時查閱 基本形式: f ( x ) = ∑ n = 0 ∞ f ( n ) ( x 0 ) n ! ( x ? x 0 ) n . f(x)=

    2024年02月08日
    瀏覽(44)
  • 硬件工程師需要掌握的PCB設計常用知識點

    硬件工程師需要掌握的PCB設計常用知識點

    ? ? ? 一個優(yōu)秀的硬件工程師設計的產品一定是既滿足設計需求又滿足生產工藝的,某個方面有瑕疵都不能算是一次完美的產品設計。規(guī)范產品的電路設計,工藝設計,PCB設計的相關工藝參數,使得生產出來的實物產品滿足可生產性、可測試性、可維修性等的技術規(guī)范要求,

    2023年04月20日
    瀏覽(20)
  • 第一天 關于項目遇到的問題和缺少的知識點

    第一天 關于項目遇到的問題和缺少的知識點

    配置文件使用的都是配置類方式 創(chuàng)建配置類WebMvcConfig,設置靜態(tài)資源映射 用于在Springboot項目中, 默認靜態(tài)資源的存放目錄為 : \\\"classpath:/resources/\\\", \\\"classpath:/static/\\\", \\\"classpath:/public/\\\" ; 而在我們的項目中靜態(tài)資源存放在 backend, front 目錄中, 那么這個時候要想訪問到靜態(tài)資源, 就需要

    2024年02月09日
    瀏覽(97)
  • 數據庫系統(tǒng)概述——第一章 緒論(知識點復習+練習題)

    數據庫系統(tǒng)概述——第一章 緒論(知識點復習+練習題)

    ? 博主: 命運之光 ?? 專欄: 離散數學考前復習(知識點+題) ?? 專欄: 概率論期末速成(一套卷) ?? 專欄: 數字電路考前復習 ?? 專欄: 數據庫系統(tǒng)概述 ? 博主的其他文章: 點擊進入博主的主頁????? 前言: 身為大學生考前復習一定十分痛苦,你有沒有過以

    2024年02月09日
    瀏覽(25)
  • 詳細介紹Django的ORM操作中的F()函數

    在Django的ORM(對象關系映射)中,F()函數是一個強大的查詢表達式,用于在數據庫層級執(zhí)行字段級別的操作和比較。 F()函數允許你在查詢中 引用數據庫字段 ,以及在查詢過程中執(zhí)行數據庫級別的操作,而無需將數據取回到Python層。這可以提高性能并減少數據傳輸量。 下面是

    2024年02月13日
    瀏覽(89)
  • 第一單元 單元測試

    第一單元 單元測試

    在我們之前,測試某些功能是否能夠正常運行時,我們都將代碼寫到Main方法中,當我們測試第二個功能時,我們只能選擇將之前的代碼清掉,重新編寫。此時,如果你還想重新測試你之前的功能時,這時你就顯得有些難為情了,因為代碼都被你清掉了。當然你完全可以把代碼

    2024年02月07日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包