Skip to content

badsyntax/vscode-entity-framework

Folders and files

NameName
Last commit message
Last commit date
Oct 25, 2024
Sep 22, 2024
Sep 21, 2024
Oct 5, 2024
Sep 22, 2024
Feb 18, 2025
Feb 23, 2025
Dec 23, 2022
Sep 21, 2024
Dec 23, 2022
Dec 25, 2022
Dec 23, 2022
Dec 23, 2022
Dec 29, 2022
Dec 23, 2022
Jan 13, 2023
Dec 23, 2022
Dec 23, 2022
Oct 5, 2024
Dec 23, 2022
Oct 28, 2024
Oct 28, 2024
Sep 22, 2024
Dec 28, 2022

Repository files navigation

Entity Framework

Build & Publish

A VS Code extension to manage Entity Framework migrations.

Entity Framework Migrations

Requirements

Features

  • List migrations by DbContext
  • Add / Remove / Run / Undo migrations
  • Show migration applied status
  • Reset (Squash) Migrations
  • Export DbContext as SQL script
  • View DbContext information
  • Scaffold DbContext & entity types
  • Generate ER Diagram (Requires EF Core 7+)

Getting Started

Set the project and startupProject configuration for the workspace by clicking on the Configure icon in the tree view:

Entity Framework Extension Configure

Extension Settings

This extension contributes the following settings:

  • entityframework.project: Target Project

    Example
    {
      "entityframework.project": "src/Infrastructure"
    }
  • entityframework.startupProject: Startup Project

    Example
    {
      "entityframework.startupProject": "ExampleAPI"
    }
  • entityframework.commands: Custom commands

    Example
    {
      "entityframework.commands": {
        "addMigration": [
          "dotnet",
          "ef",
          "migrations",
          "add",
          "\"$migrationName\"",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\"",
          "--context",
          "\"$dbContext\""
        ],
        "removeMigration": [
          "dotnet",
          "ef",
          "migrations",
          "remove",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\"",
          "--context",
          "\"$dbContext\""
        ],
        "runMigration": [
          "dotnet",
          "ef",
          "database",
          "update",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\"",
          "--context",
          "\"$dbContext\"",
          "\"$migrationId\""
        ],
        "generateScript": [
          "dotnet",
          "ef",
          "dbcontext",
          "script",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\"",
          "--context",
          "\"$dbContext\""
        ],
        "listDbContexts": [
          "dotnet",
          "ef",
          "dbcontext",
          "list",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\""
        ],
        "listMigrations": [
          "dotnet",
          "ef",
          "migrations",
          "list",
          "--context",
          "\"$context\"",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\""
        ],
        "dbContextInfo": [
          "dotnet",
          "ef",
          "dbcontext",
          "info",
          "--context",
          "\"$dbContext\"",
          "--project",
          "\"$project\"",
          "--startup-project",
          "\"$startupProject\""
        ],
        "scaffold": [
          "dotnet",
          "ef",
          "dbcontext",
          "scaffold",
          "\"$connectionString\"",
          "\"$provider\"",
          "--output-dir",
          "\"$outputDir\"",
          "--context",
          "\"$context\"",
          "--project",
          "\"$project\"",
          "--context-dir",
          "\"$contextDir\"",
          "--namespace",
          "\"$namespace\""
        ],
        "generateERD": [
          "dotnet",
          "ef",
          "dbcontext",
          "scaffold",
          "\"$connectionString\"",
          "\"$provider\"",
          "--context",
          "\"$context\"",
          "--project",
          "\"$project\"",
          "--output-dir",
          "\"$outputDir\"",
          "--use-database-names"
        ]
      }
    }
  • entityframework.erDiagram.ignoreTables: A list of tables to ignore from the ER Diagram

    Example
    {
      "entityframework.erDiagram": {
        "ignoreTables": [".*Tracking$"]
      }
    }
  • entityframework.env: Custom environment variables

    Example
    {
      "entityframework.env": {
        "ASPNETCORE_ENVIRONMENT": "LocalDev",
        "TenantId": "12345"
      }
    }

ER Diagram

When generating an ER diagram, a Mermaid .t4 template will be installed into the project. You can ignore this file (by adding it to .gitignore), or add it to source control. The template file is used to generate the ER Diagram, feel free to customise it. If you delete it, it will be regenerated next time you generate an ER Diagram.

Entity Framework ER Diagram

Performance

The EF tools execute application code at design time to get information about the project, thus performance on large projects can be slow.

Support

License

See LICENSE.md.