中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

東莞做營(yíng)銷(xiāo)型網(wǎng)站seo專(zhuān)員是干什么的

東莞做營(yíng)銷(xiāo)型網(wǎng)站,seo專(zhuān)員是干什么的,企業(yè)管理系統(tǒng)網(wǎng)站,會(huì)寧網(wǎng)站建設(shè)系列文章目錄 🎀🎀🎀 .NET開(kāi)源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目錄 系列文章目錄一、前言 🍃二、插入方式 💯2.1 單條插入實(shí)體2.2 批量 插入實(shí)體2.3 根據(jù)字典插入2.4 根據(jù) Dat…

系列文章目錄

🎀🎀🎀 .NET開(kāi)源 ORM 框架 SqlSugar 系列 🎀🎀🎀


文章目錄

  • 系列文章目錄
  • 一、前言 🍃
  • 二、插入方式 💯
    • 2.1 單條插入實(shí)體
    • 2.2 批量 插入實(shí)體
    • 2.3 根據(jù)字典插入
    • 2.4 根據(jù) Datatable 插入
    • 2.5 匿名、Object、接口、抽象類(lèi)插入
    • 2.6 插入返回值
  • 三、功能案例
    • 3.1 不插入指定字段
    • 3.2 只插入指定字段
    • 3.3 NULL列不插入 💯
    • 3.4 異步執(zhí)行
    • 3.5 級(jí)聯(lián)、導(dǎo)航插入
    • 3.6 大數(shù)據(jù)插入
    • 3.7 插入默認(rèn)值
    • 3.8 Guid主鍵自動(dòng)賦值
    • 3.9 調(diào)用實(shí)體內(nèi)方法
    • 3.10 雪花ID
    • 3.11 強(qiáng)制插入自增列
    • 3.12 Into Select
    • 3.13 分頁(yè)插入
  • 四、總結(jié)
  • 🎀🎀🎀 .NET開(kāi)源 ORM 框架 SqlSugar 系列 🎀🎀🎀


一、前言 🍃

前面的章節(jié)介紹了各種 SqlSugar 各種場(chǎng)景的 查詢(xún) 操作,接下來(lái)將介紹 SqlSugar 增、刪、改 相關(guān)操作。數(shù)據(jù)庫(kù) 插入 數(shù)據(jù)的方法包括:使用 SQL 插入語(yǔ)句、通過(guò) ORM 框架、使用 批量插入 技術(shù)、利用 存儲(chǔ)過(guò)程。

二、插入方式 💯

2.1 單條插入實(shí)體

單條插入實(shí)體是最常見(jiàn)也是最基本的用法,以下羅列了一些單條實(shí)體插入的示例。

  • 🔢返回插入行數(shù)
  • 🛗插入返回自增列 (實(shí)體除 ORACLE 外實(shí)體要配置自增,Oracle 需要配置序列)
  • ??返回雪花ID
  • 🧭導(dǎo)航插入
  • ??獲取數(shù)據(jù)庫(kù)時(shí)間
  • 🎯強(qiáng)制設(shè)置表名

🌰 具體 demo 如下:

//返回插入行數(shù)
db.Insertable(insertObj).ExecuteCommand(); //都是參數(shù)化實(shí)現(xiàn)
//異步: await db.Insertable(insertObj).ExecuteCommandAsync()//插入返回自增列 (實(shí)體除ORACLE外實(shí)體要配置自增,Oracle需要配置序列)
db.Insertable(insertObj).ExecuteReturnIdentity();
//異步: await db.Insertable(insertObj).ExecuteReturnIdentityAsync();//返回雪花ID
long id= db.Insertable(實(shí)體).ExecuteReturnSnowflakeId();//導(dǎo)航插入
//具體文檔:https://www.donet5.com/Home/Doc?typeId=2430//實(shí)用技巧1:獲取數(shù)據(jù)庫(kù)時(shí)間我們可以用   
var dbTime = db.GetDate();
//實(shí)用技巧2: 強(qiáng)制設(shè)置表名(默認(rèn)表名來(lái)自實(shí)體) 
db.Insertable(insertObj).AS("table01").ExecuteCommand();//更多返回值方法看 1.6

2.2 批量 插入實(shí)體

批量插入主要有如下四種方式🆚:

  1. 非參數(shù)化插入(防注入)

    • ?優(yōu)點(diǎn):綜合性能比較平均,列少1萬(wàn)條也不慢,屬于萬(wàn)金油寫(xiě)法,不加事務(wù)情況下部分庫(kù)有失敗回滾機(jī)質(zhì)。
    • 🚫缺點(diǎn):數(shù)據(jù)量超過(guò)5萬(wàn)以上占用內(nèi)存會(huì)比較大些,內(nèi)存小可以用下面2種方式處理。
  2. 參數(shù)化內(nèi)部分頁(yè)插入(底層是分頁(yè)插入)

    • ?優(yōu)點(diǎn):適合插入條數(shù)固定,并且條數(shù)較少,請(qǐng)求頻繁高的功能(最大利用執(zhí)行計(jì)劃緩存)。
    • 🚫缺點(diǎn):個(gè)別庫(kù)500以上就開(kāi)始慢了,要加事務(wù)才能回滾。
  3. 大數(shù)據(jù)寫(xiě)入(特色功能:大數(shù)據(jù)處理上比所有框架都要快30%)

    • ?優(yōu)點(diǎn):1000條以上性能無(wú)敵手。
    • 🚫缺點(diǎn):不支持?jǐn)?shù)據(jù)庫(kù)默認(rèn)值, API功能簡(jiǎn)單, 小數(shù)據(jù)量并發(fā)執(zhí)行不如普通插入,插入數(shù)據(jù)越大越適合用這個(gè)。
  4. Into Select ,從一個(gè)表導(dǎo)入到另一個(gè)表

    • ?優(yōu)點(diǎn):性能好。
    • 🚫缺點(diǎn):數(shù)據(jù)必須在數(shù)據(jù)庫(kù)已存在,才能這樣插入到新表。
//(1)、非參數(shù)化插入(防注入) 
//優(yōu)點(diǎn):綜合性能比較平均,列少1萬(wàn)條也不慢,屬于萬(wàn)金油寫(xiě)法,不加事務(wù)情況下部分庫(kù)有失敗回滾機(jī)質(zhì)
//缺點(diǎn):數(shù)據(jù)量超過(guò)5萬(wàn)以上占用內(nèi)存會(huì)比較大些,內(nèi)存小可以用下面2種方式處理
db.Insertable(List<實(shí)體>).ExecuteCommand()  
db.Insertable(List<實(shí)體>).PageSize(1000).ExecuteCommand() //新功能:分頁(yè)插入 5.1.4.103+
//錯(cuò)誤: db.Insertable<List<實(shí)體>>(List).ExecuteCommand()//<>里面不能是list
//正確: Insertable<實(shí)體>(List).ExecuteCommand() 
//正確: Insertable(List).ExecuteCommand() //(2)、參數(shù)化內(nèi)部分頁(yè)插入(底層是分頁(yè)插入)
//優(yōu)點(diǎn):適合插入條數(shù)固定,并且條數(shù)較少,請(qǐng)求頻繁高的功能(最大利用執(zhí)行計(jì)劃緩存)
//缺點(diǎn):個(gè)別庫(kù)500以上就開(kāi)始慢了,要加事務(wù)才能回滾  
db.Insertable(List<實(shí)體>).UseParameter().ExecuteCommand()//5.0.3.8及以上 //(3)、大數(shù)據(jù)寫(xiě)入(特色功能:大數(shù)據(jù)處理上比所有框架都要快30%)
//優(yōu)點(diǎn):1000條以上性能無(wú)敵手
//缺點(diǎn):不支持?jǐn)?shù)據(jù)庫(kù)默認(rèn)值, API功能簡(jiǎn)單, 小數(shù)據(jù)量并發(fā)執(zhí)行不如普通插入,插入數(shù)據(jù)越大越適合用這個(gè)
//新功能 5.0.44
db.Fastest<實(shí)體>().PageSize(100000).BulkCopy(List<實(shí)體>);//MySql連接字符串要加AllowLoadLocalInfile=true
//詳細(xì)文檔:https://www.donet5.com/Home/Doc?typeId=2404//(4)、Into Select ,從一個(gè)表導(dǎo)入到另一個(gè)表 
//優(yōu)點(diǎn):性能好
//缺點(diǎn):數(shù)據(jù)必須在數(shù)據(jù)庫(kù)已存在,才能這樣插入到新表//例1:不同實(shí)體插入  
db.Queryable<Order>()//.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不過(guò)ID就不一樣了   .Select(it=>new { name=it.name,......})            .IntoTable<實(shí)體2>();//例2: 同實(shí)體不同表插入    
db.Queryable<Order>()//.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不過(guò)ID就不一樣了
.IntoTable<Order>("新表名");

2.3 根據(jù)字典插入


//可以是 Dictionary 或者 List<Dictionary >
var dc= new Dictionary<string, object>();dc.Add("name", "1");dc.Add("CreateTime", DateTime.Now);
db.Insertable(dc).AS("student").ExecuteCommand();

2.4 根據(jù) Datatable 插入

//方案1
List<Dictionary<string,object>> dc= db.Utilities.DataTableToDictionaryList(dataTable);//5.0.23版本支持
db.Insertable(dc).AS("student").ExecuteReturnIdentity();//注意:5.0.7.7 以下存在BUG
//方案2 :直接用datatable插入
db.Fastest<System.Data.DataTable>().AS("order").BulkCopy(dataTable);
//具體用法 要看文檔  https://www.donet5.com/Home/Doc?typeId=2404

2.5 匿名、Object、接口、抽象類(lèi)插入

//1.匿名對(duì)象插入(最新)
db.InsertableByDynamic(new   { name="",price=1 }).AS("[Order]").ExecuteCommand();//2.Object、接口、抽象類(lèi)插入
//o必須是真實(shí)的類(lèi)對(duì)象 (比如根據(jù)type反射出來(lái)的對(duì)象,或者轉(zhuǎn)成了Object的實(shí)體)db.InsertableByObject(o).ExecuteCommand();//3.更多功能 :動(dòng)態(tài)建類(lèi)等
https://www.donet5.com/Home/Doc?typeId=2562

2.6 插入返回值

在這里插入圖片描述

三、功能案例

3.1 不插入指定字段

//忽略 name testid
db.Insertable(insertObj).IgnoreColumns(it => new { it.Name, it.TestId }).ExecuteReturnIdentity();
db.Insertable(insertObj).IgnoreColumns( "Name","TestId").ExecuteReturnIdentity();

3.2 只插入指定字段

//只插入 name schoolid 
db.Insertable(insertObj).InsertColumns(it => new { it.Name, it.SchoolId }).ExecuteReturnIdentity();
db.Insertable(insertObj).InsertColumns("Name","SchoolId").ExecuteReturnIdentity();

3.3 NULL列不插入 💯

注意:因?yàn)椴迦氲牧胁煌恢С峙坎僮?#xff0c;如果有需要可以自已循環(huán)操作

db.Insertable(insertObj2).IgnoreColumns(ignoreNullColumn:true).ExecuteCommand();

3.4 異步執(zhí)行

await Db.Insertable(new Order() { Name = "a", CustomId = 1 }).ExecuteCommandAsync();

3.5 級(jí)聯(lián)、導(dǎo)航插入

db.InsertNav(list).Include(z1 => z1.SchoolA)// 插入第一層 SchoolA.ThenInclude(z1 => z1.RoomList) //插入 SchoolA 下面的 RoomList.Include(z1 => z1.Books)//插入第一層  Books.ExecuteCommand();

3.6 大數(shù)據(jù)插入


//插入 100萬(wàn) 數(shù)秒時(shí)間
db.Fastest<RealmAuctionDatum>().BulkCopy(GetList());//性能 比現(xiàn)有任何Bulkcopy都要快30%
db.Fastest<RealmAuctionDatum>().PageSize(50000).BulkCopy(List<實(shí)體>);//大數(shù)據(jù)分頁(yè)插
//如果不支持可以用:普通分頁(yè)插入 
db.Insertable(List<實(shí)體>).PageSize(1000).ExecuteCommand();//普通分頁(yè)插入

3.7 插入默認(rèn)值

方式1: 如果數(shù)據(jù)庫(kù)存在默認(rèn)值用這個(gè)方法

public class Order
{[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }public string Name { get; set; }public decimal Price { get; set; }[SugarColumn(IsOnlyIgnoreInsert =true)]//設(shè)置后插入會(huì)取數(shù)據(jù)庫(kù)默認(rèn)值public DateTime CreateTime { get; set; }
}

方式2:通過(guò)特性指定默認(rèn)值

  //InsertServerTime=true 插入取數(shù)據(jù)庫(kù)當(dāng)前時(shí)間 支持多庫(kù) //IsOnlyIgnoreUpdate=true 是指在Update操作不更新該列 (可用可不用根據(jù)需求來(lái))[SugarColumn(InsertServerTime =true, IsOnlyIgnoreUpdate =true)]// getdate() now() sysdatepublic DateTime CreateTime { get; set; }//插入根據(jù)SQL進(jìn)行插入 [SugarColumn(InsertSql  = "getdate()")] //生成   getdate()public DateTime CreateTime2 { get; set; }[SugarColumn(InsertSql  = "''")] // 生成  ''public string  Str { get; set; }[SugarColumn(InsertSql  = "0")]// 生成  0public string  Str { get; set; }

方式3: 通過(guò)AOP實(shí)現(xiàn),會(huì)有單獨(dú)篇幅介紹

3.8 Guid主鍵自動(dòng)賦值

只要設(shè)置為主鍵,并且 C# 類(lèi)型是 Guid 只要不傳值,會(huì)自動(dòng)賦值。

🎯注意: 只能用ExecuteCommand 方法不能用自增列的方法

3.9 調(diào)用實(shí)體內(nèi)方法

 var data=new  UnitInsertMethod(){ Name="a",Time=DateTime.Now};db.Insertable(data).ExecuteCommand();db.Updateable(data).CallEntityMethod(it => it.modify("admint")).ExecuteCommand();//實(shí)體public class UnitInsertMethod{[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }public string Name { get; set; }public DateTime Time { get; set; }[SqlSugar.SugarColumn(IsNullable =true)]public string UserId { get; set; }public void Create(){this.Time = DateTime.Now;this.UserId = "1";}public void modify(string a){this.Time = DateTime.Now;this.UserId = a;}} 

3.10 雪花ID

詳情請(qǐng)移步:SqlSugar雪花ID常見(jiàn)問(wèn)題

3.11 強(qiáng)制插入自增列

🎯需要數(shù)據(jù)庫(kù)的支持才行,ORM 只是把 SQL 中的 自增列 加上去了,有些需要寫(xiě)腳本。

//請(qǐng)升級(jí)到:5.1.4.73-preview12
db.Insertable(insertObj).OffIdentity().ExecuteCommand() //老版本:SqlServer支持不友好
//db.Insertable(insertObj).IgnoreColumns(false,true).ExecuteCommand()

3.12 Into Select

//例1:不同實(shí)體插入 Select Into
db.Queryable<Order>()//.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不過(guò)ID就不一樣了   .Select(it=>new { name=it.name,......})            .IntoTable<實(shí)體2>();//例2: 同實(shí)體不同表插入    
db.Queryable<Order>()//.IgnoreColumns(it=>it.Id) 如果是自增可以忽略,不過(guò)ID就不一樣了
.IntoTable<Order>("新表名");

3.13 分頁(yè)插入

可以用分頁(yè)插入慢慢處理

db.Insertable(List<實(shí)體>).PageSize(1000).ExecuteCommand();//普通分頁(yè)
db.Fastest<RealmAuctionDatum>().PageSize(100000).BulkCopy(GetList());//大數(shù)據(jù)分頁(yè)

四、總結(jié)

以上介紹了 SqlSugar 的各種插入操作,除此之外還有 無(wú)實(shí)體插入、導(dǎo)航插入、AOP插入等等。


🎀🎀🎀 .NET開(kāi)源 ORM 框架 SqlSugar 系列 🎀🎀🎀

【開(kāi)篇】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【入門(mén)必看】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【實(shí)體配置】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【Db First】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【Code First】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【數(shù)據(jù)事務(wù)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【連接池】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【查詢(xún)目錄】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【查詢(xún)基礎(chǔ)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【排序用法】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【分組去重】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【聯(lián)表查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【導(dǎo)航查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【子查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【嵌套查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【配置查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【并集查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【樹(shù)型查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【表格查詢(xún)】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【動(dòng)態(tài)表達(dá)式】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【查詢(xún)函數(shù)】.NET開(kāi)源ORM框架 SqlSugar 系列
【過(guò)濾器】.NET開(kāi)源 ORM 框架 SqlSugar 系列
【跨庫(kù)查詢(xún)、多庫(kù)查詢(xún)】.NET開(kāi)源 ORM 框架
?【報(bào)表查詢(xún)】.NET開(kāi)源ORM框架 SqlSugar 系列
【W(wǎng)here語(yǔ)法全解密】.NET開(kāi)源ORM框架 SqlSugar 系列
【Select 語(yǔ)法全解密】.NET開(kāi)源ORM框架 SqlSugar 系列

在這里插入圖片描述

http://www.risenshineclean.com/news/27295.html

相關(guān)文章:

  • 涼山州建設(shè)廳官方網(wǎng)站360搜索優(yōu)化
  • 做任務(wù)換流量的網(wǎng)站推特是誰(shuí)的公司
  • 成都網(wǎng)站建站微信上怎么做廣告推廣
  • 昆明網(wǎng)頁(yè)建站模板百度登錄首頁(yè)
  • 視覺(jué)傳達(dá)畢業(yè)設(shè)計(jì)網(wǎng)站seo關(guān)鍵詞排名網(wǎng)絡(luò)公司
  • 網(wǎng)站建設(shè)方案書(shū) 本案怎么提高百度關(guān)鍵詞排名
  • 巴中網(wǎng)站建設(shè)有限公司長(zhǎng)春seo優(yōu)化
  • 網(wǎng)站建設(shè)詳細(xì)的步驟有哪些上海做關(guān)鍵詞推廣企業(yè)
  • 成都網(wǎng)站改版優(yōu)化四川網(wǎng)絡(luò)推廣推廣機(jī)構(gòu)
  • 163建筑網(wǎng)站免費(fèi)企業(yè)網(wǎng)站模板源碼
  • 做企業(yè)網(wǎng)站服務(wù)網(wǎng)站免費(fèi)制作平臺(tái)
  • 青州網(wǎng)站定制網(wǎng)站排名優(yōu)化推廣
  • 做公司網(wǎng)站需要多怎么做個(gè)網(wǎng)站
  • ip做網(wǎng)站域名什么是網(wǎng)絡(luò)營(yíng)銷(xiāo)戰(zhàn)略
  • 從化網(wǎng)站開(kāi)發(fā)公司鄭州百度網(wǎng)站優(yōu)化排名
  • wordpress 時(shí)差seo排名技術(shù)軟件
  • 淘寶上做網(wǎng)站怎么做互聯(lián)網(wǎng)營(yíng)銷(xiāo)推廣
  • 遼寧響應(yīng)式網(wǎng)站費(fèi)用北京網(wǎng)絡(luò)推廣優(yōu)化公司
  • 網(wǎng)站開(kāi)發(fā)建設(shè)成本seo關(guān)鍵詞優(yōu)化怎么收費(fèi)
  • 網(wǎng)站關(guān)鍵字太多seo關(guān)鍵詞
  • 多媒體網(wǎng)站開(kāi)發(fā)助理百度快照如何優(yōu)化
  • 網(wǎng)站建設(shè) 設(shè)備seo外包資訊
  • 網(wǎng)站建設(shè)公司出路網(wǎng)絡(luò)培訓(xùn)總結(jié)
  • 網(wǎng)站開(kāi)發(fā)要寫(xiě)代碼嗎站長(zhǎng)工具平臺(tái)
  • 杭州哪個(gè)網(wǎng)站建設(shè)最好百度推廣計(jì)劃
  • 泗洪做網(wǎng)站游戲推廣話(huà)術(shù)
  • wordpress寫(xiě)說(shuō)說(shuō)廊坊seo優(yōu)化排名
  • 建設(shè)網(wǎng)站是什么關(guān)系個(gè)人怎么注冊(cè)自己的網(wǎng)站
  • 長(zhǎng)沙 外貿(mào)網(wǎng)站建設(shè)公司排名桌面百度
  • 幣客bkex是一群外行人做的網(wǎng)站自己如何開(kāi)網(wǎng)站