EFCore使用MySQL

EFCore使用SQL Server应该是鼻祖了吧,哈哈!不过使用MySQL的就比较少见了,至少官网是没有引导的。因为不是MySQL微软的东西嘛,当然推崇SQL Server了;不过MySQL相对SQL Server更为轻量一些,我们就来简单整理下吧!ModelNuGet包如下:
1、Microsoft.EntityFrameworkCore.Design
2、Microsoft.EntityFrameworkCore.Tools
3、MySql.EntityFrameworkCore
4、Microsoft.EntityFrameworkCore
5、Microsoft.EntityFrameworkCore.Relational

在这里插入图片描述

对了,MySQL还可以安装连接Visual Studio和.NET的组件,需要注意的是,目前直连Visual Studio的版本仅支持到Visual Studio 2017Visual Studio 2019暂时还没有相关的组件,不过并不影响使用。

在这里插入图片描述

编写SysContext

public class SysContext : DbContext
    {
    
    
        public SysContext(DbContextOptions<SysContext> options)
            : base(options)
        {
    
    
        }

        public DbSet<Student> Student {
    
     get; set; }

    }

编写一个实体类,做一下简单Code First验证:

public class Student
    {
    
    
        [Key]
        public string Id {
    
     get; set; }
        public string Name {
    
     get; set; }

        public string Number {
    
     get; set; }

        public string Address {
    
     get; set; }
    }

同样,Web层也NuGet相同的包!在Startup.cs进行注入:

public void ConfigureServices(IServiceCollection services)
        {
    
    
            services.AddDbContext<SysContext>(options=>
            {
    
    
                options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"));
            });
            services.AddControllersWithViews();
        }

配置appsettings.json链接字符串:

"ConnectionStrings": {
    
    
    "DefaultConnection": "server=localhost;database=test;uid=root;pwd=2239Yang;"
  },

在这里插入图片描述

做一下,数据迁移

Add-Migration A
Update-Database

在这里插入图片描述

这时候打开客户端MySQL,可以看到通过自定义实体,已成功创建相应的表!

在这里插入图片描述

编写一个Controller简单测试下吧!

public class HomeController : Controller
    {
    
            
        public async Task<IActionResult> Index()
        {
    
    

            var config = new ConfigurationBuilder()
                .SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("appsettings.json",true,true)
                .AddInMemoryCollection()
                .Build();
            
            var connStr = config["ConnectionStrings:DefaultConnection"];

            DbContextOptions<SysContext> options = new DbContextOptionsBuilder<SysContext>().UseMySQL(connStr).Options;

            SysContext db = new SysContext(options);

            var s1 = new Student()
            {
    
    
                Id=Guid.NewGuid().ToString(),
                Name="Stu1",
                Number="Stu_No1",
                Address="BeiJing"
            };
            db.Student.Add(s1);

            var s2 = new Student()
            {
    
    
                Id = Guid.NewGuid().ToString(),
                Name = "Stu2",
                Number = "Stu_No2",
                Address = "BeiJing"
            };
            db.Student.Add(s2);

            await db.SaveChangesAsync();
            return Json(db.Student.ToList());
        }
    }

执行成功!

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42799562/article/details/114302488
今日推荐