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教程来操作。

     

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

  • 相关阅读:
    这次面试就差不多了,你有什么问题需要问我呢?
    C++为啥要使用new
    C#读取“我的文档”等特殊系统路径及环境变量
    C++11 Lambda表达汇总总结
    c#计算 坐标点与坐标点之间的距离
    eclipse svn同步资源库时忽略某些不需要提交文件类型和文件夹
    通俗理解TCP/IP协议三次握手四次分手流程
    mysql 免安装版 启动服务马上关闭
    MySQL数据库安装与配置详解
    word 插入的图片被嵌套在文字底下
  • 原文地址:https://www.cnblogs.com/linezero/p/5806814.html
Copyright © 2011-2022 走看看