Entity Framework .NET Core 的数据库优先方法 Class 库项目 "Microsoft.EntityFrameworkCore.Tools"

Entity Framework DB first approach for .NET Core Class Library Project "Microsoft.EntityFrameworkCore.Tools"

我正在使用 Visual Studio 2015 并尝试安装用于构建我的数据库的依赖项 类。这是 Project.json:

{
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": "net451"
    }
  }
}

但是Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final没有安装,报这个错:

如何解决这个问题?

由于 EF 与 .NET Standard 尚不兼容,我们必须使 class 库与 .NET Core 兼容。添加必要的依赖,然后修改库为启动。

"dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    }

打开包管理器控制台,然后安装以下包:

  • 运行 安装包 Microsoft.EntityFrameworkCore.SqlServer
  • 运行 安装包 Microsoft.EntityFrameworkCore.Tools –Pre
  • 运行 安装包 Microsoft.EntityFrameworkCore.SqlServer.设计

将必要的工具添加到 project.json

tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}

project.json应该类似于这样:

{
  "buildOptions": {
    "emitEntryPoint": true
  },
  "frameworks": {
    "netcoreapp1.0": {}
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1"
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final"
    }
  }
}

现在,创建一个名为 "Models" 的文件夹,您生成的 classes 将驻留在其中。

现在,运行以下命令搭建数据库:

  Scaffold-DbContext "Server=YourServer;Database=YourDB;User Id=sa;Password=yourPassword;"
 Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models