精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

學習SqlSugar ORM框架的關鍵:對其模塊與實現原理的詳細分析

開發 前端
Core 模塊是 SqlSugar 的核心模塊,主要實現了 ORM 映射的核心功能。其中包括了一個代碼生成器,可以根據相關配置信息自動生成對應的實體類和數據訪問層代碼。

SqlSugar 是一款基于 ADO.NET 的輕量級 ORM 框架,它的核心模塊包括 Core、Ado、Queryable、SqlBuilder 和 Attributes 等,下面就逐一進行深度解析。

Core 模塊

Core 模塊是 SqlSugar 的核心模塊,主要實現了 ORM 映射的核心功能。其中包括了一個代碼生成器,可以根據相關配置信息自動生成對應的實體類和數據訪問層代碼。

在 Core 模塊中,SqlSugar 使用反射機制獲取實體類屬性信息,在運行時動態生成 SQL 語句。同時,SqlSugar 中定義了一系列的委托類型,通過委托實現對 SQL 語句、參數值和實體數據的封裝和處理,大大簡化了數據訪問層的編寫工作。此外,SqlSugar 中還引入了緩存機制,大大提高了數據訪問效率。

Ado 模塊

Ado 模塊是 SqlSugar 中最底層的模塊,用于對數據庫進行操作。主要包括了與數據庫連接相關的類和方法,例如 ConnectionConfig、SqlConnection、SqlCommand、SqlDataAdapter 等,通過這些類和方法,SqlSugar 可以實現與多種類型的數據庫連接。

在 Ado 模塊中,SqlSugar 將數據庫連接分為兩個部分:連接池和操作命令。在連接池中,SqlSugar 提供了一系列的方法,包括創建連接、獲取連接、釋放連接和關閉連接等。在操作命令中,SqlSugar 使用 SqlCommand 類對 SQL 語句進行執行,并借助 SqlParameters 類封裝參數值。

Queryable 模塊

Queryable 模塊用于實現查詢功能,它是 ORM 中最常用的模塊之一。該模塊封裝了對數據表的查詢操作,使得開發人員可以通過類似 LINQ 的語法,對數據進行高效、簡潔、安全地操作。同時,SqlSugar 還提供了 Filter、Join、GroupBy、OrderBy 和 Select 等方法,可以極大地豐富查詢語句的功能。

在 Queryable 模塊中,SqlSugar 定義了一些基本的查詢方法,包括 First、Single、ToList、ToDataTable 等,這些方法返回的對象都繼承自 ISugarQueryable 接口,使得開發人員可以方便地根據需要對查詢結果進行轉換和處理。

SqlBuilder 模塊

SqlBuilder 模塊用于構建 SQL 語句,它允許開發人員直接使用字符串操作來構建 SQL 語句,SqlSugar 會自動將字符串轉換成可執行的 SQL 語句并執行。

在 SqlBuilder 模塊中,SqlSugar 提供了一系列的輔助方法,幫助開發人員構建 SQL 語句。例如,Append 方法用于添加 SQL 片段、AddParameters 方法用于添加 SQL 參數、ExecuteSqlQuery 方法用于執行查詢語句等。

Attributes 模塊

Attributes 模塊包含了 SqlSugar 中定義的特性,其中最常用的是 SugarColumn 特性,用于定義數據表和實體類之間的映射關系。此外,還有 SugarTable、SugarDatabase、SugarFunction 和 SugarParameter 等多個特性,可以用于定義數據表、數據庫、函數和參數等信息。在 Attributes 模塊中,SqlSugar 使用反射機制獲取對象的屬性信息,并根據特性信息進行處理。同時,SqlSugar 還充分利用了 C# 中的特性繼承性,使得開發人員可以方便地對實體類中的屬性進行分類管理和定義。

SqlSugar 的實現原理主要有以下幾個方面:

1. 利用反射機制獲取實體類的屬性信息,并根據這些信息動態生成 SQL 語句。

2. 使用 C# 中的委托機制,消除了開發人員需要手寫 SQL 語句的繁瑣操作。

3. 通過使用連接字符串,實現了與多種類型的數據庫連接,使得開發人員可以輕松地切換數據庫類型。

4. 使用緩存技術,可以大大提高數據訪問的效率。SqlSugar 內部采用了一種 “三級緩存” 的方式,將實體類數據緩存在內存中,使得在頻繁查詢數據時,能夠快速地返回結果。

SqlSugar 可以與各種對象進行關聯映射,使得開發者能夠更加方便地操作數據庫。

以下是 SqlSugar 的初級用法:

創建實體類

使用 SqlSugar 前需要先創建實體類,并在實體類中定義與數據表中字段相對應的屬性,例如:

[SugarTable("Student")]
public class Student
{
    [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
    public int Id { get; set; }
    
    [SugarColumn(ColumnDataType = "nvarchar", Length = 50, Nullable = false)]
    public string Name { get; set; }

    [SugarColumn(ColumnName = "ClassId")]
    public int? Class { get; set; }
}

以上代碼定義了一個名為 “Student” 的實體類,其中 “SugarTable” 特性指定了數據表的名稱,而 “SugarColumn” 特性則針對每一個屬性進行了映射,包括列名、數據類型、長度、是否允許為空等。

創建數據庫連接

在使用 SqlSugar 進行操作前,需要先創建數據庫連接,例如:

SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig()
{
    ConnectionString = "server=localhost;database=MyDatabase;uid=root;pwd=123456",
    DbType = DbType.MySql,
    IsAutoCloseConnection = true,
    InitKeyType = InitKeyType.Attribute
});

以上代碼中,使用 ConnectionConfig 指定了數據庫連接字符串、數據庫類型、是否自動關閉連接和主鍵類型等信息,創建 SqlSugarClient 后即可對數據庫進行操作。

常用操作

SqlSugar 支持大多數常用的數據庫操作,例如查詢、新增、更新和刪除等。以下是一些簡單的示例:

查詢:

var students = Db.Queryable<Student>().ToList();

以上代碼中,使用 “Queryable” 方法獲取 “Student” 數據表的所有數據,并將結果轉換為 List 類型。

新增:

var student = new Student()
{
    Name = "binjie09",
    Class = 1
};
Db.Insertable(student).ExecuteCommand();

以上代碼中,定義了一個名為 “student” 的新學生,并使用 “Insertable” 方法將其添加到 “Student” 數據表中。

更新:

Db.Updateable<Student>()
    .SetColumns(s => new Student() { Name = "binjie09-update" })
    .Where(s => s.Name == "binjie09")
    .ExecuteCommand();

以上代碼中,使用 “Updateable” 方法對 “Student” 數據表進行更新操作,將名稱為 “binjie09” 的學生的名稱改為 “binjie09-update”。

刪除:

Db.Deleteable<Student>().Where(s => s.Class == 1).ExecuteCommand();

以上代碼中,使用 “Deleteable” 方法對 “Student” 數據表進行刪除操作,刪除班級為 1 的所有學生。

以上是 SqlSugar 的初級用法,可以幫助您快速入門并實現基本的數據庫操作。

以下是 SqlSugar 的一些高級用法:

多表查詢

使用 SqlSugar 可以輕松實現多表查詢,例如:

var queryable = Db.Queryable<Student, Class>((s, c) => new object[]
{
    JoinType.Inner, s.ClassId == c.Id
}).Select((s, c) => new { s.Id, s.Name, ClassName = c.Name });

上述代碼中,“Student” 和 “Class” 兩個實體類進行了內連接,其中 “Student” 類中的 “ClassId” 屬性與 “Class” 類中的 “Id” 屬性相關聯。

Lambda 表達式

SqlSugar 支持Lambda表達式,可以更加方便地編寫查詢語句,例如:

var list = Db.Queryable<Student>().Where(s => s.Age > 18).ToList();

上述代碼中,使用 “Where” 方法對 “Student” 實體類進行了篩選,只返回年齡大于18歲的學生信息。“ToList()” 方法表示將篩選結果轉換成List類型。

存儲過程

SqlSugar 還支持調用存儲過程,例如:

var result = Db.Ado.UseStoredProcedure<dynamic>(() =>
{
    var p1 = new SugarParameter("@Id", 1);
    var p2 = new SugarParameter("@Name", "binjie09");
    var p3 = new SugarParameter("@Age", 20);

    return ("GetStudentInfo", new SugarParameter[] { p1, p2, p3 });
});

上述代碼中,使用 “UseStoredProcedure” 方法調用名為 “GetStudentInfo” 的存儲過程,并傳遞三個參數。返回結果為動態類型。

事務處理

SqlSugar 提供了事務處理功能,可以保證多次數據庫操作的原子性,例如:

try
{
    Db.Ado.BeginTran();
    //...
    Db.Ado.CommitTran();
}
catch (Exception ex)
{
    Db.Ado.RollbackTran();
}

上述代碼中,使用 “BeginTran” 方法開啟一個事務,在try語句塊中進行多個數據庫操作,在發生異常時使用 “RollbackTran” 方法回滾事務,否則使用 “CommitTran” 方法提交事務。

以上是 SqlSugar 的一些高級用法,可以根據具體的需求來選擇使用。

官方教程:https://www.donet5.com/Home/Doc。

責任編輯:姜華 來源: 今日頭條
相關推薦

2009-03-24 08:30:54

AndroidGoogle移動os

2009-03-24 09:17:58

驅動GSMAndroid

2009-06-18 14:00:51

2010-04-26 18:17:19

Oracle存儲過程

2009-09-28 10:39:01

Hibernate基礎

2009-09-25 14:23:39

2009-12-03 17:41:40

PHP應用發展

2021-10-25 19:52:52

IntentFilte

2009-11-11 17:02:36

Visual Stud

2010-08-09 13:15:05

DB2 Capture

2009-11-25 17:05:56

PHP5對象simpl

2009-11-11 14:18:00

動態路由協議

2009-12-18 10:39:50

路由器關鍵技術

2010-01-06 16:12:52

分析Json stri

2010-04-12 10:53:07

Oracle SQL

2010-03-08 17:18:46

Linux du命令

2010-07-02 11:19:31

IP協議頭格式

2010-04-26 14:32:21

Oracle SQL

2009-09-09 09:48:43

Linq延遲加載

2009-10-10 13:52:57

VB Update方法
點贊
收藏

51CTO技術棧公眾號

国产91综合网| 91久久在线| 欧美zozo另类异族| 国产a视频免费观看| 在线观看a视频| 成人综合在线视频| 国产精品情侣自拍| 国产在线观看成人| 日韩啪啪电影网| 精品粉嫩aⅴ一区二区三区四区| 成人午夜视频免费在线观看| 好了av在线| 91麻豆123| 亚洲自拍另类欧美丝袜| 亚洲成熟少妇视频在线观看| 久久久久午夜电影| 亚洲精品一区二三区不卡| 午夜大片在线观看| 在线日韩影院| 亚洲一二三区视频在线观看| 亚洲视频在线二区| 色鬼7777久久| 福利一区在线观看| 成人精品视频久久久久| 波多野结衣绝顶大高潮| 亚洲区欧美区| 欧美激情视频免费观看| 老司机精品免费视频| 日日狠狠久久偷偷综合色| 欧美一区二区三区的| 污污的网站18| 综合日韩av| 午夜av区久久| 丁香色欲久久久久久综合网| 久久综合之合合综合久久| 久久久久99精品国产片| 精品视频一区在线| 国产91绿帽单男绿奴| 国产综合色产在线精品| 国产精品丝袜久久久久久不卡| 国产成人在线免费观看视频| 狠狠入ady亚洲精品经典电影| 视频直播国产精品| 538精品视频| 久久av免费看| 亚洲毛片一区二区| 欧美成人三级伦在线观看| y111111国产精品久久久| 日韩午夜在线影院| 日本黄色三级网站| 成人亚洲精品| 欧美一区二区在线看| 17c国产在线| 欧美大片1688网站| 在线观看91精品国产入口| 妞干网在线免费视频| 天堂av中文在线观看| 精品久久久香蕉免费精品视频| 日韩伦理在线免费观看| 2021中文字幕在线| 精品国产乱码久久久久久婷婷| 免费av手机在线观看| 性xxxxfreexxxxx欧美丶| 欧美视频在线观看 亚洲欧| 日韩中文字幕二区| 成人日韩av| 欧美日韩午夜在线| 91香蕉视频免费看| www.丝袜精品| 亚洲欧美激情四射在线日| 黄色片网站免费| 99久久久久国产精品| 久久69精品久久久久久久电影好 | 国产精品视频网址| 91成人在线免费| 国产91精品在线观看| 久久久婷婷一区二区三区不卡| 男人久久精品| 中文字幕一区二区三区四区| 日本a在线天堂| 少妇淫片在线影院| 精品视频资源站| 特种兵之深入敌后| 在线日本制服中文欧美| xxxxxxxxx欧美| 国产精品99re| 三级欧美在线一区| 亚洲a中文字幕| 色欲久久久天天天综合网| 国产亚洲婷婷免费| 无码人妻精品一区二区三区99v| 精精国产xxxx视频在线野外| 在线观看成人免费视频| 波多野结衣三级视频| 亚洲天堂日韩在线| 精品国产一区久久久| 日本少妇裸体做爰| 蜜臀精品久久久久久蜜臀| av资源站久久亚洲| 成人资源www网在线最新版| 一区二区三区四区激情| jizz欧美激情18| 成人在线视频中文字幕| 深夜福利一区二区| 制服.丝袜.亚洲.中文.综合懂色| 麻豆精品视频在线观看| 国精产品一区二区| 高清全集视频免费在线| 欧洲视频一区二区| xxxxxx黄色| 亚洲九九在线| 国产精品国产亚洲伊人久久| 蜜桃av中文字幕| 综合av第一页| 好男人www社区| 日韩极品在线| 久久久中文字幕| 99国产精品久久久久久久成人| 2024国产精品视频| 久久亚洲精品无码va白人极品| 青青在线精品| 国产亚洲成av人片在线观看桃| 亚洲欧美在线观看视频| 国产精品一区三区| 亚洲最大色综合成人av| 日韩不卡免费高清视频| 亚洲国产高清高潮精品美女| 综合五月激情网| 麻豆一区二区在线| 欧洲精品码一区二区三区免费看| av免费不卡国产观看| 日韩一区二区三区免费看| 一级免费黄色录像| 日本不卡视频一二三区| 日本视频一区二区在线观看| 在线女人免费视频| 日韩精品999| 在线观看免费国产视频| 成人少妇影院yyyy| 欧美人成在线观看| 亚洲天堂中文字幕在线观看| 欧美成人免费在线视频| 99视频在线观看免费| 亚洲色图欧美偷拍| 久久综合在线观看| 一本一本久久a久久综合精品| 亚洲一区二区三| a在线免费观看| 欧美一区二区视频免费观看| 印度午夜性春猛xxx交| 国产伦精品一区二区三区视频青涩 | 亚洲先锋影音| 91视频免费网站| 国产成人在线视频免费观看| 日韩一二三区视频| 九九热国产精品视频| 成人天堂资源www在线| 69sex久久精品国产麻豆| 欧美大胆视频| 欧美综合在线第二页| 黄色av免费在线观看| 欧美亚洲国产怡红院影院| 在线观看天堂av| 精品一区二区三区香蕉蜜桃 | 欧洲性xxxx| 精久久久久久久久久久| 一二三在线视频| 丁香5月婷婷久久| 97视频在线观看视频免费视频| 午夜18视频在线观看| 91黄色免费网站| 97成人资源站| 92国产精品观看| 亚洲国产精品三区| 在线中文一区| 久久精品一二三区| 国产伊人久久| 欧美激情欧美激情在线五月| 久久99久久| 欧美日韩www| 日本五十路女优| 日本一区二区三级电影在线观看 | 国内久久久精品| 国产一级二级三级在线观看| 91精品国产综合久久久久久久| 日本中文字幕免费在线观看| 99精品国产91久久久久久| 五月天婷婷激情视频| 亚洲五月综合| 日韩国产美国| 99久久婷婷国产综合精品青牛牛| 青青草原成人在线视频| caopon在线免费视频| 亚洲精选在线观看| 99久久一区二区| 一本久久a久久免费精品不卡| 天天色影综合网| 91香蕉国产在线观看软件| 九九热精品国产| 亚洲在线电影| 国产午夜精品视频一区二区三区| 深爱激情综合| 国产精品果冻传媒潘| a屁视频一区二区三区四区| 国内精品久久久久久久| 男人天堂手机在线| 亚洲毛片在线免费观看| 亚洲大尺度视频| 欧美日韩性生活| 69亚洲精品久久久蜜桃小说 | 97se亚洲国产综合自在线不卡| 国产精品久久久久久9999| 久久精品网址| 日韩中字在线观看| 久久久久久美女精品| 日韩欧美精品在线不卡| 成人香蕉社区| 99久久精品无码一区二区毛片| 福利视频亚洲| 91成人精品网站| 免费看电影在线| 久久精品久久久久久| 国产黄色片在线播放| 日韩电影中文字幕在线观看| 国产农村老头老太视频| 欧美日韩三级在线| 伊人久久久久久久久久久久 | 久热精品视频在线| 91caoporn在线| 国产午夜精品一区理论片飘花| 神马久久久久| 亚洲激情在线观看| 动漫av一区二区三区| 日韩一区二区三区精品视频| 国产欧美一级片| 欧美亚洲综合久久| 成人免费视频国产免费| 色一情一乱一乱一91av| 欧美h在线观看| 欧美日韩国产精品一区二区三区四区| 日韩激情在线播放| 亚洲成av人片在线观看| 国产稀缺真实呦乱在线| 亚洲国产精品自拍| 久久精品无码人妻| 亚洲成人资源网| 久久久综合久久久| 亚洲午夜成aⅴ人片| 一级片免费网址| 黑人巨大精品欧美一区二区免费| 天天操天天操天天操天天| 一本久久精品一区二区| 欧美一级黄视频| 91.com视频| 国产99视频在线| 欧美va亚洲va| 亚洲人妻一区二区三区| 国产婷婷色综合av蜜臀av| 国产在线高清| 日韩亚洲在线观看| 色yeye免费人成网站在线观看| 久久91亚洲精品中文字幕| 国产www视频在线观看| 久久久久久久久久久久久久久久久久av| 国产第一页在线视频| 日本在线观看天堂男亚洲| 久久影视精品| 99伊人久久| 天天做夜夜做人人爱精品 | 欧美午夜精品久久久| 亚洲一区在线观| 日韩欧美中文字幕制服| 天天干天天插天天操| 亚洲亚裔videos黑人hd| 欧美激情二区| 久久久免费电影| 激情开心成人网| 91亚洲人电影| 欧美一级全黄| 国产精品波多野结衣| 亚洲激情婷婷| 激情 小说 亚洲 图片: 伦| 国产精品 日产精品 欧美精品| 欧美一区二区三区影院| 久久嫩草精品久久久精品一| 国产精品国产三级国产传播| 香蕉影视欧美成人| 在线观看中文字幕2021| 亚洲成人动漫在线播放| h网站视频在线观看| 久久久久久久久久久久久久久久久久av | 亚洲乱码中文字幕| 国产原创视频在线| 日韩一区二区三| 激情小视频在线观看| 久久久女女女女999久久| 日本精品裸体写真集在线观看| 51午夜精品| 精品国产乱码久久久| 91免费国产精品| 日产国产欧美视频一区精品| 亚洲啪av永久无码精品放毛片 | 成人少妇影院yyyy| 91香蕉国产视频| 欧美日韩中文字幕| 99久久免费国产精精品| 亚洲免费视频一区二区| 欧美专区18| 国产99视频精品免费视频36| 久操成人av| 国产91沈先生在线播放| 蜜桃视频在线观看一区| 久久精品女同亚洲女同13| 中文字幕亚洲电影| 国产伦精品一区二区三区视频网站| 欧美一级午夜免费电影| 成人高潮成人免费观看| 日韩vs国产vs欧美| 国产欧美日韩中文| 日本美女一级片| 精品国产自在精品国产浪潮| **在线精品| 久久综合九色99| 亚洲狠狠婷婷| 无码人妻丰满熟妇区毛片蜜桃精品| 国产精品久久久久久户外露出| 超碰在线观看91| 精品亚洲永久免费精品| 17videosex性欧美| 97netav| 永久91嫩草亚洲精品人人| 男人的天堂最新网址| 中文字幕av一区二区三区高 | 欧美网站一区二区| 三级无遮挡在线观看| 性欧美xxxx视频在线观看| 9l视频自拍蝌蚪9l视频成人| 大桥未久一区二区三区| 精品综合免费视频观看| 三级黄色在线观看| 欧美日韩另类国产亚洲欧美一级| 国产女人在线观看| 国产精品久久久999| av亚洲免费| 9久久婷婷国产综合精品性色 | 久久久999视频| 91亚洲精品久久久蜜桃| 久久艹免费视频| 亚洲男人天堂视频| 成人黄色免费短视频| 亚洲国产精品久久久久久女王| 另类小说视频一区二区| 国产精品国产三级国产传播| 91精品久久久久久久91蜜桃| 免费男女羞羞的视频网站在线观看| 国产视色精品亚洲一区二区| 9国产精品视频| 亚洲av无码国产精品麻豆天美| 色国产综合视频| 天堂аⅴ在线地址8| 91色p视频在线| 黄色成人在线网站| 精品一区二区视频在线观看| 色综合天天综合在线视频| 丁香在线视频| 91嫩草视频在线观看| 亚洲麻豆视频| 日本一区二区视频在线播放| 欧美精品 日韩| av福利在线导航| 欧洲一区二区日韩在线视频观看免费| 日韩中文字幕区一区有砖一区 | 色综合夜色一区| 日本中文字幕电影在线免费观看| 亚洲曰本av电影| 亚洲在线视频| 999精品在线视频| 亚洲经典中文字幕| 国内欧美日韩| 国产va亚洲va在线va| 国产日韩精品视频一区| 国产色视频在线| 8x拔播拔播x8国产精品| 久久资源中文字幕| 成人午夜精品无码区| 欧美三级电影一区| 91福利在线尤物| 一区二区日本伦理| 北条麻妃一区二区三区| 色婷婷久久综合中文久久蜜桃av| 欧美肥臀大乳一区二区免费视频| 国产亚洲一区二区三区啪| 一级日本黄色片| 91久久精品国产91性色tv| 免费电影网站在线视频观看福利| 午夜精品福利一区二区| 99视频在线观看一区三区| 97免费观看视频| 日本精品久久中文字幕佐佐木| 中国精品18videos性欧美|