精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产欧美在线一区| 亚洲精品福利在线观看| 午夜精品一区二区三区四区| 一本色道久久综合亚洲| 欧美黄色免费| 精品视频偷偷看在线观看| 国产三级三级看三级| 欧美韩日亚洲| 国产欧美日韩综合| 成人综合色站| 日韩在线 中文字幕| 亚洲综合伊人| 亚洲成av人**亚洲成av**| 欧美午夜免费| 亚洲第九十九页| 日本午夜一区二区| 国内精品久久久久| 国精产品久拍自产在线网站| 超碰cao国产精品一区二区| 91福利在线免费观看| av片在线免费| 朝桐光av在线一区二区三区| 国产美女一区| 九九热这里只有精品免费看| 国产人妻大战黑人20p| 福利片在线一区二区| 亚洲综合网站在线观看| 日本中文不卡| 午夜一区在线观看| 国产一区91精品张津瑜| 国产精品美腿一区在线看| 日本少妇做爰全过程毛片| 午夜激情久久| 91久久精品一区二区三区| 日韩不卡视频一区二区| av成人手机在线| 免费成人你懂的| 7777精品久久久久久| 国产人妻精品一区二区三区不卡| 九九视频精品全部免费播放| 亚洲第一天堂av| 久久精品无码一区二区三区毛片| 97人人做人人爽香蕉精品| 久久久综合网站| 国产精品香蕉视屏| www.97av.com| 国产精品一区二区三区乱码| 国产免费成人av| 中国黄色一级视频| 天堂在线一区二区| 国内偷自视频区视频综合| 在线免费日韩av| 亚洲色图88| 久久精品国产2020观看福利| 精品视频第一页| 日本一区二区三区视频| 一区二区在线视频播放| 一区二区三区在线观看免费视频| 久久久人成影片一区二区三区在哪下载| 亚洲图片欧美视频| 给我免费播放片在线观看| 黄色在线看片| 香蕉成人啪国产精品视频综合网| 精品少妇人欧美激情在线观看| 91国内在线| 亚洲愉拍自拍另类高清精品| av日韩在线看| hd国产人妖ts另类视频| 欧美日韩午夜视频在线观看| 高清欧美精品xxxxx| 日韩欧美精品一区二区三区| 欧美性猛交xxxxx水多| 免费无码不卡视频在线观看| 在线成人av观看| 欧美亚洲国产一区二区三区va| 欧美日韩怡红院| 亚洲电影二区| 日韩丝袜情趣美女图片| 蜜臀视频在线观看| 蜜桃a∨噜噜一区二区三区| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 日韩亚洲在线| 国产精品扒开腿爽爽爽视频| 影音先锋黄色网址| 国产99久久久精品| 国产不卡av在线| 国产亚洲小视频| 欧美残忍xxxx极端| 亚洲欧美中文另类| 国产日韩精品中文字无码| 久久久久电影| 欧美做受高潮电影o| 欧美三级 欧美一级| 亚洲精选成人| 国产这里只有精品| 婷婷久久久久久| 欧美精彩视频一区二区三区| 在线成人性视频| 999福利在线视频| 欧美三级韩国三级日本三斤| 可以看的av网址| 国产精品一区二区99| 久久伊人色综合| 99国产精品无码| 欧美一区二区三区另类 | 亚洲v欧美v另类v综合v日韩v| 免费大片在线观看www| 午夜一区二区三区视频| 日韩高清第一页| 色婷婷综合久久久久久| 久久综合伊人77777尤物| www欧美在线| 国产精品夜夜嗨| 亚洲高清在线播放| yw在线观看| 午夜一区二区三区在线观看| 97超碰人人爽| 欧美日韩精品一区二区视频| 久久久免费观看视频| 怡红院男人的天堂| 91免费视频网址| a天堂资源在线观看| 欧美特黄色片| 一区二区成人av| 在线观看国产亚洲| 高清免费成人av| 一级全黄肉体裸体全过程| 亚洲www.| 欧美日韩中文一区| 欧美精品欧美极品欧美激情| 一本到12不卡视频在线dvd| 国产成+人+综合+亚洲欧美丁香花| www.国产三级| 亚洲美女免费视频| 亚洲一二三av| 香蕉av一区二区| 国产精品久久在线观看| 你懂的在线视频| 五月天中文字幕一区二区| 日韩av成人网| 韩日成人在线| 99免费在线视频观看| 国产网站在线免费观看| 欧美欧美欧美欧美| 中文字幕第69页| 麻豆视频观看网址久久| 亚洲第一在线综合在线| 欧美日韩在线精品一区二区三区激情综合 | 亚洲不卡免费视频| 一区二区三区日韩| 岛国精品一区二区三区| 亚洲午夜av| 国产精品免费在线播放| 成人性生交大片免费看在线播放| 日韩免费成人网| 国产一级一片免费播放| 风流少妇一区二区| 国产二级片在线观看| 美国一区二区| 日本韩国欧美精品大片卡二| 欧洲成人av| 欧美综合欧美视频| 黄色片网站在线播放| 国模少妇一区二区三区 | 亚洲深夜福利| 蜜桃91精品入口| 草民电影神马电影一区二区| 久久精品国产91精品亚洲| 国产精品一品二区三区的使用体验| 亚洲欧洲精品一区二区精品久久久| 日本道在线视频| 日韩免费一级| 91av在线视频观看| 懂色一区二区三区| 欧美精品777| 中文字幕一区二区三区手机版| 99精品视频在线播放观看| 91黄色小网站| 亚洲最大av| 精品国产二区在线| 国产欧美自拍| 午夜精品视频在线| 国产免费一区二区三区最新不卡| 一区二区三区美女视频| 中文字幕在线观看的网站| 天堂午夜影视日韩欧美一区二区| 亚洲欧洲精品一区二区三区波多野1战4| 成人免费观看49www在线观看| 欧美日韩福利视频| 国模精品一区二区| 日韩精品在线网站| 中文字幕黄色片| 亚洲女人的天堂| 在线免费观看日韩av| 久久国产精品露脸对白| 韩日视频在线观看| 久久五月天小说| 国产精品日韩欧美一区二区三区 | 色网站在线看| 精品精品欲导航| 中文字幕自拍偷拍| 精品久久久香蕉免费精品视频| 亚洲黄色网址大全| 成人avav影音| 免费精品99久久国产综合精品应用| 影音国产精品| 自拍视频一区二区三区| 人人精品视频| 91精品国产综合久久久久久丝袜| 美女100%一区| 欧美精品18videosex性欧美| av在线三区| 国产丝袜一区二区| 亚洲经典一区二区三区| 在线观看网站黄不卡| 日本五十熟hd丰满| 亚洲乱码中文字幕综合| 林心如三级全黄裸体| 337p粉嫩大胆噜噜噜噜噜91av| 精品国产午夜福利在线观看| 日产国产欧美视频一区精品| 国产原创popny丨九色| 68国产成人综合久久精品| 日韩亚洲不卡在线| 日韩超碰人人爽人人做人人添| 91超碰rencao97精品| 粉嫩91精品久久久久久久99蜜桃 | 精品亚洲a∨一区二区三区18| 国产成人91久久精品| 97久久人人超碰caoprom| 久热精品视频在线观看| 三级外国片在线观看视频| 日韩成人在线视频| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 国产精品igao激情视频 | 久久成人这里只有精品| 自拍视频在线| 色老头一区二区三区在线观看| 伊人网视频在线| 色妞www精品视频| 97久久久久久久| 欧美日韩亚洲成人| 国产精品久免费的黄网站| 欧美日韩精品在线观看| 日产欧产va高清| 午夜精品免费在线| 国产福利拍拍拍| 偷拍亚洲欧洲综合| 国产 欧美 日韩 在线| 午夜欧美大尺度福利影院在线看 | 在线观看成人小视频| 中文字幕天堂在线| 欧美综合久久久| 国产乱码精品一区二三区蜜臂 | 日韩欧美中文| 一本一生久久a久久精品综合蜜| 日韩精品dvd| 一区二区三区四区免费视频| 91蜜臀精品国产自偷在线| 一区二区视频在线免费| 亚洲最新色图| 欧美日韩不卡在线视频| 免费精品视频| 妺妺窝人体色www在线观看| 免费观看30秒视频久久| 手机免费av片| 成人性生交大片免费| 日韩一级片播放| 麻豆精品蜜桃视频网站| 手机在线国产视频| 成人激情黄色小说| 实拍女处破www免费看| 国产精品麻豆欧美日韩ww| 亚洲欧美精品aaaaaa片| 亚洲国产aⅴ成人精品无吗| 久久久国产精品成人免费| 在线观看日韩毛片| 99国产精品欲| 亚洲精品成a人在线观看| 国产中文字幕在线观看| 日韩一区二区三区在线播放| a级片国产精品自在拍在线播放| 久久久久久久久久久免费精品| 狠狠躁少妇一区二区三区| 超碰97人人做人人爱少妇| 欧美韩日亚洲| 国产精品久久久久aaaa九色| 欧美一级网址| 精品高清视频| 午夜精品久久久久久久四虎美女版| 日本精品久久久久久久久久| 香蕉国产精品偷在线观看不卡| 国产精品自在自线| 99re视频精品| 欧美黄色aaa| 日韩欧美在线免费观看| 国产黄色片av| 在线国产精品视频| gogo久久| 51国偷自产一区二区三区| 一区二区三区日本久久久| 男同互操gay射视频在线看| 亚洲少妇一区| 深夜福利网站在线观看| 国产亚洲一区二区三区| 久久一区二区三| 欧美高清视频www夜色资源网| 瑟瑟在线观看| 欧美激情xxxx性bbbb| 欧美成人一二区| 欧美另类一区| 亚洲高清在线| 久久久久亚洲av片无码v| 国产欧美日韩在线观看| 国产成人亚洲精品自产在线| 678五月天丁香亚洲综合网| 黄色影院在线播放| 91国内在线视频| av男人一区| 一级黄色免费在线观看| 日韩电影免费在线观看网站| 无码少妇一区二区三区芒果| 国产福利视频一区二区三区| 性xxxxxxxxx| 国产精品久久久久久久第一福利 | 精品丝袜在线| 国产福利不卡| 欧美日本亚洲韩国国产| 日本中文字幕二区| 国产精品日韩成人| 波多野结衣毛片| 亚洲欧洲中文天堂| 午夜裸体女人视频网站在线观看| 不卡一区二区三区视频| 亚洲精品极品少妇16p| 一本色道久久亚洲综合精品蜜桃| 久久一二三国产| 少妇太紧太爽又黄又硬又爽| 亚洲第一区中文99精品| 国产美女高潮在线观看| 国产精品一区二区三区免费观看| 国内揄拍国内精品久久| 97中文字幕在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 一起草av在线| 久久影视电视剧免费网站清宫辞电视| 亚洲精品66| 黄色一级视频播放| 国产一区二区精品在线观看| 国产精品夜夜夜爽阿娇| 欧美日韩国产一区二区三区地区| 成年人视频免费在线观看| 国产精品免费一区豆花| 第一sis亚洲原创| 黄色小视频免费网站| 1000部国产精品成人观看| 国产欧美日韩综合精品一区二区三区| 久久精品中文字幕电影| 免费看日产一区二区三区 | 日日夜夜免费精品视频| japanese中文字幕| 欧美日韩亚州综合| a视频在线播放| 国内精品二区| 日韩中文字幕91| 中日韩一级黄色片| 亚洲变态欧美另类捆绑| 一个人看的www视频在线免费观看| 欧美18视频| 久久99国产精品久久99| 黑鬼狂亚洲人videos| 亚洲第一偷拍网| 成人精品一区二区三区电影| 五月天色婷婷综合| 国产91丝袜在线18| 亚洲不卡在线视频| 欧美成人激情视频| 日韩欧美一区二区三区免费观看| 日韩国产在线一区| 国产一区二区精品久久| 天堂а√在线中文在线新版| 中文亚洲视频在线| 136福利精品导航| 国产淫片av片久久久久久| 亚洲欧洲国产专区| 天堂在线中文字幕| 欧美精品成人91久久久久久久| 欧美黑人巨大videos精品| 亚洲一区在线不卡| 亚洲国产裸拍裸体视频在线观看乱了 | 丝袜诱惑一区二区| 久久久国产精华液999999| 成人91在线观看| 一二区在线观看| 91av国产在线| 欧美成人亚洲| 无码少妇一区二区| 亚洲国产精品中文| 91丨精品丨国产| 日韩毛片在线免费看|