zoukankan      html  css  js  c++  java
  • Dotnet Core EF CodeFirst 创建数据库和更新数据库

    EFCore2.0 Code First基本使用

    前言

    在网上找EFCore Code First相关的文章,很多都是基于core 1.0版本的,觉得有必要自己实践下2.0。所以,撸起袖子干吧!~

    1.新建控制台项目

    2.打开程序包管理器控制台。工具->NuGet包管理器->程序包管理器控制台

    Install-Package Microsoft.EntityFrameworkCore
    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    Install-Package Microsoft.EntityFrameworkCore.Tools

    依次安装以上三个Nuget包

    3.新建User类:

    Copy
     public class User
        {
            public int Id { get; set; }
    
            [MaxLength(30), Required]
            public string Account { get; set; }
    
            [MaxLength(30), Required]
            public string Password { get; set; }
        }
    Copy
    public class TestDbContext : DbContext
        {
            public DbSet<User> User { get; set; }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlServer(
                    "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestDB;Data Source=.");//数据库连接字符串,其中TestDB是数据库名称
            }
    
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
                modelBuilder.Entity<User>().HasIndex(u => u.Account).IsUnique();
            }
        }

    4.初始化,生成数据库

    在程序包管理器控制台依次执行以下命令

    Copy
    Add-Migration Init  //其中Init是你的版本名称
    update-database Init //更新数据库操作 init为版本名称

    执行完以上操作后,数据库就创建成功了。

    4.数据库修改

    在我们实际开发的过程中,经常性的会修改字段,那在code First中如何处理呢?
    实例:将User类的Password的长度修改为15

    Copy
     public class User
        {
            public int Id { get; set; }
    
            [MaxLength(30), Required]
            public string Account { get; set; }
    
            [MaxLength(15), Required]
            public string Password { get; set; }
        }

    控制台运行:

    Copy
    Add-Migration EditPwdLength //同上,不在解释
    update-database EditPwdLength

    运行成功后,刷新数据库查看 

  • 相关阅读:
    [C++11新特性] weak_ptr和unique_ptr
    [C++11新特性] shared_ptr共享的智能指针
    VS2019 Qt5.15.2 开发环境搭建
    【C++11 新特性】Lambda表达式(三)
    【C++11 新特性】bind(二)
    【C++11 新特性】function(一)
    【IPC 进程间通信】有名管道的简单实现
    【IPC 进程间通信】常用进程间通信方式总结
    Qt 文件常见操作管理类
    【GitHub 开源分享】QML 在线预览工具
  • 原文地址:https://www.cnblogs.com/0819lsl/p/11144180.html
Copyright © 2011-2022 走看看