日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

.Net Core+mySqlSugar的一些稍复杂操作

發(fā)布時(shí)間:2025/3/8 asp.net 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net Core+mySqlSugar的一些稍复杂操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹一些我嘗試的mysqlSugar的數(shù)據(jù)庫(kù)操作

修改密碼

var status = db.Update<Users>(new { password = user.password }, it => it.username == user.username);

更新數(shù)據(jù)(防止空值一起更新)

首先封裝一個(gè)函數(shù)(判斷是否為空或者數(shù)值為0),當(dāng)然sqlsugar有自己的查詢(xún)函數(shù),判斷值不為空且大于0? SqlFunc.HasNumber(object?thisValue)

public void ForeachDisableColumns<T>(T model){Type t = model.GetType();PropertyInfo[] PropertyList = t.GetProperties();foreach (PropertyInfo item in PropertyList){string name = item.Name;object value = item.GetValue(model);if (value == null || value.ToString() == "0"){db.AddDisableUpdateColumns(name);//新語(yǔ)法添加禁止更新列 }}}

則結(jié)合以上函數(shù),更新數(shù)據(jù)的用法

      ForeachDisableColumns(user);db.Update<Users>(user, it => it.userid == user.userid);

批量更新,同樣使用上述封裝的方法

string strArr = "[{'name':'Kotonami','userid':'1'},{'name':'Akinama','userid':'17'},{'name':'Momozawa','userid':'6'}]";List<Users> newuser = JsonConvert.DeserializeObject<List<Users>>(strArr);//批量更新 數(shù)據(jù)量小時(shí)建議使用大于十條用SqlBulkReplaceforeach (var item in newuser){ForeachDisableColumns(item);}db.UpdateRange(newuser);db.DisableUpdateColumns = null;//清空禁止更新

返回行數(shù)

var list5 = db.SqlQuery<int>("select userid from Users limit 0,1").SingleOrDefault();

跨表查詢(xún),查詢(xún)某班級(jí)學(xué)生的姓名和學(xué)號(hào)

     //方法1outStr = db.SqlQueryJson("select name from Users,Class where class.stuid = Users.userid and class.classid = '" + newclass.classid + "'");//方法2outStr = db.Queryable<Class>().JoinTable<Users>((cl, us) => us.userid == cl.stuid)//兩表共有的條件on......Where<Class>(cl => cl.classid == newclass.classid)//主表的條件where......Select("name,sex").ToJson();

三表查詢(xún) 查詢(xún)班級(jí)名稱(chēng),該班級(jí)的學(xué)生姓名和用戶(hù)id

outStr = db.Queryable<Class>().JoinTable<Users>((cl, us) => cl.stuid == us.userid).JoinTable<MyClass>((cl, mc) => cl.classid == mc.classid).Where(cl => cl.classid == newclass.classid).Select("name,sex,className").ToJson();

批量插入

string strList = "[{'classid':'2','stuid':'2'},{'classid':'2','stuid':'1'},{'classid':'2','stuid':'3'}]";List<Class> cl = JsonConvert.DeserializeObject<List<Class>>(strList);foreach (var item in cl){try{db.Insert(item);outStr = "插入成功!";}catch (Exception ex){outStr = ex.Message;}}

查看學(xué)習(xí)Math課程的學(xué)生的數(shù)量和名字

//方法1 但是稍顯復(fù)雜outStr = db.Queryable<Class>().JoinTable<Users>((cls, us) => cls.stuid == us.userid, JoinType.Inner).JoinTable<MyClass>((cls, mc) => cls.classid == mc.classid && mc.classType == "Math", JoinType.Inner).Select("name").ToJson();//方法2 也不簡(jiǎn)單outStr = db.Sqlable().From("Class", "cl").Join("Users", "us", "cl.stuid", "us.userid", JoinType.Inner).Join("MyClass", "mc", "mc.classid", "cl.classid", JoinType.Inner).Where("mc.classType = 'Math'").SelectToJson("name");//方法3outStr = db.SqlQueryJson("SELECT name FROM users,class,myclass where users.userid = class.stuid and class.classid = myclass.classid and classType= 'Math'");

分頁(yè)查詢(xún)

//這里我創(chuàng)建了一個(gè)Page類(lèi)來(lái)接收頁(yè)面的Index和Size
  
       var pageIndex = pages.pageIndex;var pageSize = pages.pageSize;var totalCount = 0;var page = db.Queryable<Users>().OrderBy(it => it.userid).ToPageList(pageIndex, pageSize, ref totalCount);int totalpages = totalCount + 1 / pageSize;//保證最后一面即使不滿(mǎn)足pagesize也占一面pages.totalPages = totalpages;
       //最后你可以處理成Json返回你要的數(shù)據(jù)

簡(jiǎn)單去重

outStr = db.Queryable<Users>().Select("username,password").GroupBy("username,password").ToJson();// 性能優(yōu)于distinct

?

轉(zhuǎn)載于:https://www.cnblogs.com/RikuBlog/p/9585916.html

總結(jié)

以上是生活随笔為你收集整理的.Net Core+mySqlSugar的一些稍复杂操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。