Asp.net核心2.0与实体框架数据库的第一种方法是用MYSQL

时间:2018-04-16 11:31:41

标签: c# mysql asp.net entity-framework-core asp.net-core-2.0

我只是在MYSQL中有一个现有的数据库编写脚本,我只想将所有表导入到我的带有实体框架核心的asp.net core 2.0 Web应用程序中。此外,我想在我的项目中使用数据库第一种方法,以便所有表都应该添加到poco类的项目中。所以请在这种情况下帮助我。

2 个答案:

答案 0 :(得分:-1)

<强> 1。运行以下命令:

 dotnet add package Microsoft.EntityFrameworkCore.Design
 dotnet add package MySql.Data.EntityFrameworkCore.Design

<强> 2。添加对Microsoft.EntityFrameworkCore.Tools.DotNet

的引用
 <ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
</ItemGroup>

第3。支持数据库

3.1安装以下NuGet包

MySql.Data.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools

3.2脚手架

 Scaffold-DbContext `"server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir sakila -f`

答案 1 :(得分:-1)

实体框架核心适用于Code First方法。此解决方案适用于SQL Server。您可以尝试以下步骤。

  1. 您针对数据库运行脚本。
  2. 下载并安装EF Core Power Tools
  3. 按照上述说明操作,它将生成所有模型 C#项目中的POCO课程。
  4. 运行Add-Migration(不要忘记将POCO课程添加到您的课程中 DBContext),您将看到生成的迁移中的更改。所以 您有两个选项可以手动删除数据库 然后运行Update-Database命令,或者您可以在生成的迁移的Up方法中删除自动生成的代码。
  5. 您也可以在GitHub上找到该工具。

    注意:对于触发器和存储过程,您必须在生成的迁移中手动调整脚本。

    存储过程的步骤:

    1. 使用存储过程语法添加文件,如AlterCreate过程。
    2. 运行Add-Migration并生成空迁移。
    3. Up方法中添加类似的代码。

      RunScript(migrationBuilder, @"PathToYouScript");
      
      private void RunScript(MigrationBuilder migrationBuilder, string scriptFilePath)
      {
          var migratorPath = Path.Combine("..", scriptFilePath);
      
          if (!File.Exists(migratorPath))
          {
              migratorPath = Path.Combine("..", "..", "..", "..", scriptFilePath);
          }
      
          migrationBuilder.Sql(File.ReadAllText(migratorPath));
      }
      
    4. 运行Update-Database