asp.net core 2.0,实体框架数据库优先,mysql

qnzebej0  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(377)

我只是有一个用mysql编写的现有数据库脚本,我只想将所有表导入到我的asp.netcore2.0web应用程序和entityframeworkcore中。另外,我想在我的项目中使用数据库优先的方法,这样所有的表都应该添加到带有poco类的项目中。所以在这种情况下请帮帮我。

niwlg2el

niwlg2el1#

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.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`
vhmi4jdf

vhmi4jdf2#

实体框架核心采用代码优先的方法。此解决方案适用于sql server。您可以尝试以下步骤。
对数据库运行脚本。
下载并安装ef核心电动工具。
按照上面提到的说明,它将生成c#项目中的所有模型poco类。
Add-Migration (别忘了在dbcontext中添加poco类),您将在生成的迁移中看到更改。所以您有两个选择,要么手动删除数据库,然后运行 Update-Database 或者您可以在中删除自动生成的代码 Up 生成迁移的方法。
你也可以在github上找到这个工具。
注意:对于触发器和存储过程,您必须在生成的迁移中手动tun脚本。
存储过程的步骤:
添加一个存储过程语法如下的文件 Alter 或者 Create 程序。
Add-Migration 生成空迁移。
将类似的代码添加到 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));
}

Update-Database .

相关问题