DotNetCore跨平臺~Dapper的使用
Dapper作為小型(xing)ORM的代(dai)表(biao)作品被我們應用(yong)到了dotnet core的項(xiang)(xiang)目中,下面將把自己在(zai)項(xiang)(xiang)目中使用(yong)dapper進行curd操作的過程寫(xie)一下,后期可(ke)能會遇到一些問題,大叔也會在(zai)這(zhe)個系列之中進行完善(shan),希望對各(ge)位學生有所幫助!
一 安(an)裝nuget的dapper包包

二(er) 在startup中注(zhu)冊dapper倉儲,并現時注(zhu)冊數據(ju)庫類型和(he)數據(ju)庫連接串(chuan)(chuan),因為在mysql和(he)sqlserver中,它們的連接串(chuan)(chuan)是不同(tong)的,模(mo)塊化設計請看大叔(shu)這(zhe)篇文(wen)章
services.UseLog4Logger(o => { o.Log4ConfigFileName = "log4.config"; o.ProjectName = "test"; }).UseDapper(o => { o.ConnString = "Server=localhost;DataBase=test2;UID=root;Password=root;charset=utf8;port=3306;SslMode=None"; o.DbType = DbType.MySql; }).UseDefaultMQ();
三 進(jin)行我們的增刪改查的操作,主要把測試(shi)中的代(dai)碼(ma)用例復制(zhi)出(chu)來(lai),供大家參(can)考
//建立鏈接(jie) var conn = new MySql.Data.MySqlClient.MySqlConnection(config_config); //簡單select var dt = conn.Query<userinfo>("select * from userinfo where UserName=@username", new { username = "花樣(yang)百出@sina.com" }); var dt1 = conn.Query<userinfo>("select * from userinfo where UserName=@username", new { username = "花樣百出(chu)@sina.com" }).Select(o => new { name = o.UserName }); //inner join & left join var dt2 = conn.Query<userinfo, userlogs, userlogDTO>( "select * from userinfo a " + "INNER JOIN userlogs b on a.Id=b.UserId " + "where a.userName=@username", (user, logs) => { return new userlogDTO { Id = user.Id, Name = user.UserName, Content = logs.Content, Time = user.AddTime, }; }, splitOn: "Id,UserId", param: new { username = "test" }); //insert conn.Execute("insert into userinfo (username,addtime) values (@username,@addtime)", new { username = "zzltest", addtime = DateTime.Now }); //update conn.Execute("update userinfo set username=@newname where username=@oldname", new { oldname = "zzltest", newname = "zzlmodify" }); //delete conn.Execute("delete userinfo where username=@name", new { name = "test" });
本篇(pian)文(wen)章(zhang)比較基(ji)礎,主要面向剛開始使用(yong)Dapper的同(tong)學!
感謝閱讀!