在Visual Studio for Mac上运行Scaffold-DbContext

时间:2017-06-12 15:03:46

标签: visual-studio-mac

我有一个首先使用数据库构建的网站,我正在尝试在mac上继续开发它。通常我会使用Visual Studio中的控制台包管理器运行Scaffold-dbContext。 mac版本没有这个我尝试在终端中运行它,但这显然不起作用。是否可以运行此命令,还是需要在Windows上继续开发?

4 个答案:

答案 0 :(得分:5)

完成here找到的一些必要步骤后,您可以从终端运行命令:

  1. 您需要手动将以下内容添加到* .csproj
  2. 
    
    <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
    </ItemGroup>
    &#13;
    &#13;
    &#13;

    1. 执行
    2.   

      dotnet add package Microsoft.EntityFrameworkCore.Design

      3.Execute

        

      dotnet restore

      您现在应该能够使用以下命令进行脚手架:

        

      dotnet ef dbcontext scaffold --help

答案 1 :(得分:3)

这是在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 terminal。它应该显示实体框架详细信息

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

答案 2 :(得分:1)

我挣扎了一段时间后只想发布自己的解决方案。必须将模式字符串分成多个--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]

答案 3 :(得分:0)

如果即使在安装EntityFrameworkCore之后仍使用.NET Core 3.0.0,则需要运行

dotnet add package Microsoft.EntityFrameworkCore.SqlServer