zoukankan      html  css  js  c++  java
  • MySQL官方.NET Core驱动已出,支持EF Core

    千呼万唤始出来MySQL官方.NET Core驱动已出,支持EF Core。

    昨天MySQL官方已经发布了.NET Core 驱动,目前还是预览版,不过功能已经可用。

    NuGet 地址:https://www.nuget.org/packages/MySql.Data

    https://www.nuget.org/packages/MySql.Data.Core/

    本篇还是简单介绍一下:.NET Core 使用Dapper 操作MySQL 数据库, .NET Core MySQL官方驱动。

    新建项目

    新建一个.NET Core控制台应用程序 NETCoreMySQL

     

    添加引用

    使用 NuGet 控制台添加

    Install-Package MySql.Data -Pre
    
    Install-Package Dapper

    MySQL 增删查改

    在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';SslMode=None");
                //新增数据
                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();
            }

    这里最重要的一点: 链接字符串要加上 SslMode=None 不然会报错误:SSL not supported in this WinRT release.

    然后就是简单使用Dapper 操作数据库了,更多功能可以查看官方文档。

    执行效果:

    GitHub :https://github.com/linezero/Blog/tree/master/NETCoreMySQL

    MySQL EF Core NuGet 地址:

    https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/

    命令安装:Install-Package MySql.Data.EntityFrameworkCore -Pre

    有兴趣的可以看看,也可以参照我之前的EF Core教程来操作。

     

    如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

  • 相关阅读:
    tensorflow 2.0 学习 (十) 拟合与过拟合问题
    tensorflow 2.0 学习 (九) tensorboard可视化功能认识
    tensorflow 2.0 学习 (八) keras模块的认识
    tensorflow 2.0 学习 (七) 反向传播代码逐步实现
    tensorflow 2.0 学习 (六) Himmelblua函数求极值
    tensorflow 2.0 学习 (五)MPG全连接网络训练与测试
    arp协议简单介绍
    Pthread spinlock自旋锁
    线程和进程状态
    内核态(内核空间)和用户态(用户空间)的区别和联系·
  • 原文地址:https://www.cnblogs.com/linezero/p/5806814.html
Copyright © 2011-2022 走看看