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
我正在使用 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