.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

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

原文地址:https://www.cnblogs.com/xtjatswc/p/12681379.html