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

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

  • 相关阅读:
    C/C++字符串函数之复制函数
    tesseract api C++使用例子
    error C2275: “XXX”: 将此类型用作表达式非法
    Socket通信原理探讨(C++为例)
    模拟按键,点击,滑动,在光标处输出字符
    安卓使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)
    【 转】__try,__except,__finally,__leave异常模型机制
    提高VS2010运行速度的技巧
    解决VS2010子目录中的.cpp文件引用上一级目录的stdafx.h找不到定义的问题
    1009MySQL数据库InnoDB存储引擎Log漫游
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/12681379.html
Copyright © 2011-2022 走看看