运行 Visual Studio 上 Mac 的脚手架-DbContext
Run Scaffold-DbContext on Visual Studio for Mac
我有一个首先使用数据库构建的站点,我正在尝试在 mac 上继续开发它。通常我会 运行 使用 Visual Studio 中的控制台包管理器的 Scaffold-dbContext。 mac 版本没有这个我在终端里试过 运行ning 它,但这显然不起作用。是否可以 运行 这个命令,或者我是否需要在 Windows 上继续开发?
您可以 运行 在完成几个必需的步骤后从终端中输入命令 here:
- 您需要将以下内容手动添加到您的 *.csproj
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
- 执行
dotnet add package Microsoft.EntityFrameworkCore.Design
3.Execute
dotnet restore
您现在应该可以使用以下命令搭建脚手架了:
dotnet ef dbcontext scaffold --help
这是我在 visual studio mac
上工作的代码
使用 visual studio 安装以下包 mac 在项目上编辑引用或将包添加到 .csproj 文件。
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
或使用 终端 导航到项目并使用以下命令 -
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
现在检查工具和 EF 是否已安装或 not.Navigate 到项目安装位置并使用 mac 终端和以下命令。它应该显示 entity framework 详细信息
dotnet ef
现在搭建数据库上下文
dotnet ef dbcontext Scaffold "Server=<servername>,1433;Initial Catalog=<dbName>;Persist Security Info=False;User ID=<userID>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"Microsoft.EntityFrameworkCore.SqlServer -o <directory name>
参考资料
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
https://www.learnentityframeworkcore.com/walkthroughs/existing-database
我只是想 post 我挣扎了一段时间后的解决方案。必须将模式字符串分成多个 --schema 选项。
dotnet ef dbcontext scaffold "Server=<servername>,1433;Initial Catalog=<dbName>;Persist Security Info=False;User ID=<userID>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer --context [context] -f --output-dir [dir] --schema [schema1] --schema [schema2]
如果您在安装 EntityFrameworkCore 后仍使用 .NET Core 3.0.0,则需要 运行
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
我有一个首先使用数据库构建的站点,我正在尝试在 mac 上继续开发它。通常我会 运行 使用 Visual Studio 中的控制台包管理器的 Scaffold-dbContext。 mac 版本没有这个我在终端里试过 运行ning 它,但这显然不起作用。是否可以 运行 这个命令,或者我是否需要在 Windows 上继续开发?
您可以 运行 在完成几个必需的步骤后从终端中输入命令 here:
- 您需要将以下内容手动添加到您的 *.csproj
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
- 执行
dotnet add package Microsoft.EntityFrameworkCore.Design
3.Execute
dotnet restore
您现在应该可以使用以下命令搭建脚手架了:
dotnet ef dbcontext scaffold --help
这是我在 visual studio mac
上工作的代码使用 visual studio 安装以下包 mac 在项目上编辑引用或将包添加到 .csproj 文件。
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
或使用 终端 导航到项目并使用以下命令 -
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
现在检查工具和 EF 是否已安装或 not.Navigate 到项目安装位置并使用 mac 终端和以下命令。它应该显示 entity framework 详细信息
dotnet ef
现在搭建数据库上下文
dotnet ef dbcontext Scaffold "Server=<servername>,1433;Initial Catalog=<dbName>;Persist Security Info=False;User ID=<userID>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"Microsoft.EntityFrameworkCore.SqlServer -o <directory name>
参考资料
https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db
https://www.learnentityframeworkcore.com/walkthroughs/existing-database
我只是想 post 我挣扎了一段时间后的解决方案。必须将模式字符串分成多个 --schema 选项。
dotnet ef dbcontext scaffold "Server=<servername>,1433;Initial Catalog=<dbName>;Persist Security Info=False;User ID=<userID>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" Microsoft.EntityFrameworkCore.SqlServer --context [context] -f --output-dir [dir] --schema [schema1] --schema [schema2]
如果您在安装 EntityFrameworkCore 后仍使用 .NET Core 3.0.0,则需要 运行
dotnet add package Microsoft.EntityFrameworkCore.SqlServer