• EFCore的CodeFirst以及DBFirs的简单使用


    直接上干货

    ===EFCore CodeFirst======= (Vs2019 Core3.0)

    1: 安装下面3个对应的package(在Nuget控制台或者直接NuGet包查询点击下载,我喜欢下面的命令,B格一些)

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


    2:创建实体
    namespace WebApplication1.Models
    {
    using System.ComponentModel.DataAnnotations;
    public class Person
    {
    [Key] //将来在数据库对应的表中 就是主键
    public int ID { get; set; }

    [MaxLength(30), Required] //。。。
    public string Name { get; set; }

    public int? Age { get; set; } //可为空
    public DateTime? Birthday { get; set; }
    }
    }

    3: 覆写下面两个方法或其中一个方法,及新增俩个实体,并添加到这里
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;

    namespace WebApplication1.Models
    {
    using Microsoft.EntityFrameworkCore;
    public class TestDbContext:DbContext
    {
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    //base.OnConfiguring(optionsBuilder);
    string sqlConnection = "server=XB-201907130929\ZRFSQLSERVER;uid=sa;pwd=123456;database=TestDbContext";
    optionsBuilder.UseSqlServer(sqlConnection);
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
    base.OnModelCreating(modelBuilder);
    //modelBuilder.Entity<Person>().HasIndex(u => u.Name).IsUnique(); //是否唯一,看你直接是否需要咯
    }

    public DbSet<Person> Person { get; set; }
    public DbSet<Book> Book { get; set; }
    }
    }


    4:控制台命令:
    Add-Migration Init //其中Init是你的版本名称 ,这个每一次修改都会要求你加上名称

    下面update-database init会同步并生成数据库及表; init当做为版本号即可

    update-database Init //再一次执行会回到这个数据库的版本包括表的字段和数据

    update-database uupdte0 会更新到这个版本,数据库中的表都会更新到这个迁移的版本,包括数据

    5:注意点
    Add-Migration EditPwdLength // 修改了表或者添加了表
    update-database EditPwdLength //加上版本EditPwdLength 会比较保险一些吧

    ===EFCore DBFirst=======

    1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台”

    分别安装以下几个包

    Mysql 版本:

    /*Install-Package MySql.Data.EntityFrameworkCore -Pre*/ (update  这个在core3.1的版本找那个需要去掉,否则报错引用不明确的问题)
    Install-Package Pomelo.EntityFrameworkCore.MySql
    Install-Package Microsoft.EntityFrameworkCore.Tools
    Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

    Sql server 版本:

    Install-Package Microsoft.EntityFrameworkCore
    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    Install-Package Microsoft.EntityFrameworkCore.Tools
    Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

    2.在程序包包管理器控制台   中执行以下语句生成 实体类
    --mysql 版本:

    Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=
    zrfTempDb
    ;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force
     
    或者
     
    Scaffold-DbContext "server=**;uid=qq;pwd=xxx;port=3306;database=zrfTempDb;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force

    --sql server 版本

    Scaffold-DbContext "Data Source=***;database=zrfTempDb;uid=qq;pwd=aoe" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

    参数说明:

    -OutputDir *** 实体文件所存放的文件目录
    -ContextDir *** DbContext文件存放的目录
    -Context *** DbContext文件名
    -Schemas *** 需要生成实体数据的数据表所在的模式
    -Tables *** 需要生成实体数据的数据表的集合
    -DataAnnotations
    -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
    -Force 强制执行,重写已经存在的实体文件

     最后,如有遇到不明白的地方可以留言联系本人!大家相互学习进步!

    后续会不断的写些自己的小笔记,加油!!!

  • 相关阅读:
    power designer 水电费缴纳系统的设计
    水电费管理系统需求分析----表格的建立
    GUID
    Java对象的序列化
    模拟银行自动终端系统
    随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
    Cookie的简易用法
    工作任务:题目一:网页输出九九乘法表;题目二:网页输出三角形和菱形
    简单的sql注入
    10-18 Oracle 基础练习
  • 原文地址:https://www.cnblogs.com/Fengge518/p/11446817.html
Copyright © 2020-2023  润新知