zoukankan      html  css  js  c++  java
  • netCore如何操作多个数据库,可以用Dapper

    .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

  • 相关阅读:
    字典对象的 Pythonic 用法(上篇:转载)
    代码这样写更优雅(Python 版)(转载)
    [Python爬虫] 之二十七:Selenium +phantomjs 利用 pyquery抓取今日头条视频
    [Python爬虫] 之二十六:Selenium +phantomjs 利用 pyquery抓取智能电视网站图片信息
    [Python爬虫] 之二十五:Selenium +phantomjs 利用 pyquery抓取今日头条网数据
    [Python爬虫] 之二十四:Selenium +phantomjs 利用 pyquery抓取中广互联网数据
    [Python爬虫] 之二十三:Selenium +phantomjs 利用 pyquery抓取智能电视网数据
    MOVE降低高水位 HWM
    select查询语句执行顺序
    Oracle表空间维护总结
  • 原文地址:https://www.cnblogs.com/zbliao/p/13711007.html
Copyright © 2011-2022 走看看