zoukankan      html  css  js  c++  java
  • .net core EFCore使用总结

        <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.3">
          <PrivateAssets>all</PrivateAssets>
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.6" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.3">

    Nuget包管理器控制台:

    Scaffold-DbContext "Data Source=127.0.0.1;Initial Catalog=ReportServer;User Id=sa;Password=sa;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir DemoModels -Tables Roles,Users

    如果执行报错,则需要安装补丁

    VS 程序包管理控件台报 ScriptHalted 解决办法

    升级最新的 PowerShell

    下载 https://www.microsoft.com/en-us/download/details.aspx?id=54616

    以win7为例:Win7AndW2K8R2-KB3191566-x64

    scaffold-dbcontext 命令使用说明

     

    工具的scaffold-dbcontext(数据库上下文脚手架)指令来生成models和context。

    指令详细介绍:

    Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>] 
    [-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>] 
    [-StartupProject <String>] [-Environment <String>] [<CommonParameters>]

    PARAMETERS 
    -Connection <String> 
    指定数据库的连接字符串。

    -Provider <String> 
    指定要使用的提供程序。例如,Microsoft.EntityFrameworkCore.SqlServer。

    -OutputDir <String> 
    指定用于输出类的目录。如果省略,则使用顶级项目目录。

    -Context <String> 
    指定生成的DbContext类的名称。

    -Schemas <String> 
    指定要为其生成类的模式。

    -Tables <String> 
    指定要为其生成类的表。

    -DataAnnotations [<SwitchParameter>] 
    使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。

    -Force [<SwitchParameter>] 
    强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。

    -Project <String> 
    指定要使用的项目。如果省略,则使用默认项目。

    -StartupProject <String> 
    指定要使用的启动项目。如果省略,则使用解决方案的启动项目。

    -Environment <String> 
    指定要使用的环境。如果省略,则使用“开发”

    初始化,生成数据库

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

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

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

    数据库修改

    在我们实际开发的过程中,经常性的会修改字段,那在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

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

  • 相关阅读:
    MySQL 存储过程 (2)
    MySQL 存储过程
    MySQL 数据库常用命令
    oracle 控制文件多路复用
    oracle定时清理日志操作
    git 常用的分支技巧
    golang tcp keepalive实践
    TCP keepalive的详解(解惑)
    勾践为什么卧薪尝胆
    golang context学习记录1
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/12681379.html
Copyright © 2011-2022 走看看