.NET Core 使用Dapper 操作MySQL 數據庫, .NET Core 使用Dapper。
目前官方沒有出.NET Core MySQL 驅動,但是已經有第三方進行改動封裝出.NET Core MySQL Connector 預覽版。
Dapper 也已經出了 .NET Core 預覽版。
Dapper dot net 是一個輕量型的ORM,但是性能很強大。
有了.NET Core MySQL Connector 我們可以直接使用ADO.NET 操作數據庫。
目前EF Core 暫時不支持MySQL, 本篇主要講解使用Dapper 操作 MySQL。
第三方 MySQL Connector: https://github.com/SapientGuardian/mysql-connector-net-netstandard
Dapper: https://github.com/StackExchange/dapper-dot-net
新建項目
新建一個.NET Core控制台應用程序 NETCoreMySQL
添加引用
使用 NuGet 控制台添加
Install-Package SapientGuardian.MySql.Data -Pre Install-Package Dapper -Pre
MySQL 增刪查改
在MySQL里面新建一個測試庫 及表
測試所用腳本:
CREATE DATABASE `test` CREATE TABLE `user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `UserName` varchar(255) DEFAULT NULL, `Url` varchar(255) DEFAULT NULL, `Age` int(11) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
新建一個User 類
public class User { public int Id { get; set; } public string UserName { get; set; } public string Url { get; set; } public int Age { get; set; } }
下面來操作MySQL 增刪改查
public static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); MySqlConnection con = new MySqlConnection("server=127.0.0.1;database=test;uid=root;pwd=;charset='gbk'"); //新增數據 con.Execute("insert into user values(null, '測試', 'http://www.cnblogs.com/linezero/', 18)"); //新增數據返回自增id var id=con.QueryFirst<int>("insert into user values(null, 'linezero', 'http://www.cnblogs.com/linezero/', 18);select last_insert_id();"); //修改數據 con.Execute("update user set UserName = 'linezero123' where Id = @Id", new { Id = id }); //查詢數據 var list=con.Query<User>("select * from user"); foreach (var item in list) { Console.WriteLine($"用戶名:{item.UserName} 鏈接:{item.Url}"); } //刪除數據 con.Execute("delete from user where Id = @Id", new { Id = id }); Console.WriteLine("刪除數據后的結果"); list = con.Query<User>("select * from user"); foreach (var item in list) { Console.WriteLine($"用戶名:{item.UserName} 鏈接:{item.Url}"); } Console.ReadKey(); }
簡單使用Dapper,更多功能可以查看官方文檔。
執行效果:
GitHub :https://github.com/linezero/Blog/tree/master/NETCoreMySQL