我有一个首先使用数据库构建的站点,我正在尝试在 Mac 上继续开发它。通常我会使用 Visual Studio 中的控制台包管理器运行 Scaffold-dbContext。mac版没有这个我试过在终端运行它,但这显然不起作用。是否可以运行此命令,还是需要在 Windows 上继续开发?
4 回答
这是我在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 是否安装。导航到项目安装位置并使用以下命令使用 mac 终端。它应该显示实体框架详细信息
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
您可以在完成此处找到的几个必需步骤后从终端运行命令:
- 您需要手动将以下内容添加到您的 *.csproj
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
- 执行
dotnet 添加包 Microsoft.EntityFrameworkCore.Design
3.执行
点网还原
您现在应该可以使用以下命令搭建脚手架:
dotnet ef dbcontext 脚手架 --help
我只是想在挣扎了一段时间后发布我的解决方案。必须将模式字符串分成多个 --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