.NET CORE 下如何使用國(guó)產(chǎn)數(shù)據(jù)庫(kù)進(jìn)行 開(kāi)發(fā)
主流國(guó)產(chǎn)數(shù)據(jù)庫(kù)
隨著貿(mào)易戰(zhàn)的升級(jí),自主研發(fā)和知識(shí)產(chǎn)權(quán)也是一個(gè)大的趨勢(shì),達(dá)夢(mèng)和人大金倉(cāng)是國(guó)產(chǎn)數(shù)據(jù)庫(kù)中比較主流的
?
1、達(dá)夢(mèng)數(shù)據(jù)庫(kù)
更接近Oracle,更偏向自主研發(fā),對(duì)開(kāi)發(fā)人員友好度不如金倉(cāng)?
達(dá)夢(mèng)公司在總結(jié)DM系列產(chǎn)品研發(fā)與應(yīng)用經(jīng)驗(yàn)的基礎(chǔ)上,堅(jiān)持開(kāi)放創(chuàng)新、簡(jiǎn)潔實(shí)用的理念,歷經(jīng)五年匠心打磨,推出的新一代自研數(shù)據(jù)庫(kù)。DM8吸收借鑒當(dāng)前先...
下載地址:
http://www.dameng.com/down.aspx?TypeId=11&FId=t14:11:14
安裝步驟:
選擇Windows版本直接安裝就行可以了,安裝時(shí)需要授權(quán)跳過(guò)即可
2、人大金倉(cāng)數(shù)據(jù)庫(kù)
基本上和PgSql一模一樣更貼近開(kāi)發(fā)功能也繼承了pgsql所有功能,對(duì)開(kāi)發(fā)人員比較友好
Kingbase ES是面向事務(wù)處理類、兼顧分析類應(yīng)用領(lǐng)域的新型數(shù)據(jù)庫(kù)產(chǎn)品,致力于解決高并發(fā)、高可靠數(shù)據(jù)存儲(chǔ)計(jì)算問(wèn)題,是一款面向企事業(yè)單位管理信息系統(tǒng)、業(yè)務(wù)及生產(chǎn)系統(tǒng)、
決策支持系統(tǒng)等量身打造的承載數(shù)據(jù)庫(kù),目前功能性能已全面升級(jí),是真正具有高成熟度的數(shù)據(jù)庫(kù)產(chǎn)品。
下載地址:
https://www.kingbase.com.cn/index/service.html
安裝步驟:
1.選擇金倉(cāng)數(shù)據(jù)庫(kù)管理系統(tǒng)
2、選擇安裝文件包和授權(quán)文件包?
?
ORM?框架選擇
既然是國(guó)產(chǎn)數(shù)據(jù)庫(kù)那么數(shù)據(jù)庫(kù)ORM也應(yīng)該選擇國(guó)產(chǎn)ORM?,SqlSugar ORM框架是一直更新到現(xiàn)在誕生最早的國(guó)產(chǎn)ORM,出身于2014年距離現(xiàn)在有6年多的時(shí)間
源碼和國(guó)產(chǎn)數(shù)據(jù)庫(kù)操作DEMO下載地址
https://github.com/sunkaixuan/SqlSugar?
?
創(chuàng)建項(xiàng)目
創(chuàng)建.NET Core項(xiàng)目
Nuget?只需要安裝SqlSugarCore?就可以操作我們的國(guó)產(chǎn)數(shù)據(jù)庫(kù)了
?
創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象
連接字符串格式
達(dá)夢(mèng)?PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA
人大金倉(cāng)?Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1
具體代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
????????????{ ????????????????ConnectionString ?= Config.ConnectionString, ????????????????DbType ?= DbType.Dm,//達(dá)夢(mèng)數(shù)據(jù)庫(kù) ????????????????IsAutoCloseConnection ?=?true, ????????????????InitKeyType ?= InitKeyType.Attribute, ????????????????AopEvents ?=?new?AopEvents() ????????????????{ ????????????????????OnLogExecuting ?= (sql, p) => ????????????????????{ ????????????????????????Console.WriteLine(sql); ????????????????????} ????????????????} ????????????}); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var?Db2 =?new?SqlSugarClient(new?ConnectionConfig() ???????????{ ???????????????ConnectionString ?= Config.ConnectionString, ???????????????DbType ?= DbType.Kdbndp,//人大金倉(cāng)數(shù)據(jù)庫(kù) ???????????????IsAutoCloseConnection ?=?true, ???????????????InitKeyType ?= InitKeyType.Attribute, ???????????????AopEvents ?=?new?AopEvents() ???????????????{ ???????????????????OnLogExecuting ?= (sql, p) => ???????????????????{ ???????????????????????Console.WriteLine(sql); ???????????????????} ???????????????} ???????????}); |
?
創(chuàng)建實(shí)體
1 2 3 4 5 6 7 8 9 10 11 | [SugarTable("STudent")] ?public?class?Student ??{ ??????[SugarColumn(IsPrimaryKey ?=?true, IsIdentity =?true)] ??????public?int?Id ?{?get;?set; } ??????public?int? ?SchoolId {?get;?set; } ??????public?string?Name ?{?get;?set; } ??????public?DateTime? ?CreateTime {?get;?set; } ??????[SugarColumn(IsIgnore=true,NoSerialize ?=true)] ??????public?int?TestId ?{?get;?set; } ??} |
使用ORM操作數(shù)據(jù)庫(kù)
具體用法和其它數(shù)據(jù)庫(kù)操作一模一樣
1 2 3 4 5 6 7 8 9 10 11 | //查詢 var?getFirst = ?db.Queryable var?getAllNoLock = ?db.Queryable var?getByPrimaryKey = ?db.Queryable var?sum = db.Queryable var?isAny = ?db.Queryable var?isAny2 = db.Queryable var?getListByRename = ?db.Queryable var?getByWhere = db.Queryable var?list= ?db.Queryable var?list2 = db.Queryable |
?
返回List
1 | List |
返回第一個(gè)實(shí)體
Student item =db.Queryable
?
返回DataTable
DataTabledataTable = db.Queryable
?
返回Json
var?json =db.Queryable
返回?cái)?shù)組
List<int> listInt=db.Queryable
返回匿名對(duì)象
vardynamic?= db.Queryable
?
返回到新類
var?viewModel = db.Queryable
JoinType.Left,st.SchoolId == sc.Id,
JoinType.Left,st.Name == di.String
))
.Select
?
多表返回匿名對(duì)象
var?newDynamic = db.Queryable
JoinType.Left,st.SchoolId == sc.Id,
JoinType.Left,st.Name == di.String
)).Select((st,sc,di)=>new?{ name=st.Name,scid=sc.Id }).ToList();
?
手動(dòng)返回到新類
var?newClass= db.Queryable
JoinType.Left,st.SchoolId == sc.Id,
JoinType.Left,st.Name == di.String
)).Select((st,sc,di)=>new?ClassName{ name=st.Name,scid=sc.Id}).ToList();
?
多表查一表
var?oneClass = db.Queryable
JoinType.Left,o.Id == i.OrderId,
JoinType.Left,o.CustomId == c.Id
))
.Select((o, i, c)=> c).ToList();
?
多表返回2表
var?twoClass = db.Queryable
JoinType.Left,o.Id == i.OrderId,
JoinType.Left, o.CustomId== c.Id
))
.Select((o, i, c)=>?new?{ o,i}).ToList()
?
返回字典集合
List
JoinType.Left,st.SchoolId == sc.Id,
JoinType.Left,st.Name == di.String
)).Select
?
?
?
刪除
db.Deleteable
?
更新
var?result=db.Updateable(updateObj).ExecuteCommand();
?
插入
db.Insertable(insertObj).ExecuteCommand();
?
除了增刪查改,SqlSugar ORM?還支持很多功能,就不一一演示,一篇文章介紹不完?!?/span>
?
源碼DEMO下載地址:
https://github.com/sunkaixuan/SqlSugar
?出處:
https://www.cnblogs.com/sunkaixuan/archive/2020/11/01/13909851.html
版權(quán)申明:本文來(lái)源于網(wǎng)友收集或網(wǎng)友提供,如果有侵權(quán),請(qǐng)轉(zhuǎn)告版主或者留言,本公眾號(hào)立即刪除。
