我只是在MYSQL中有一个现有的数据库编写脚本,我只想将所有表导入到我的带有实体框架核心的asp.net core 2.0 Web应用程序中。此外,我想在我的项目中使用数据库第一种方法,以便所有表都应该添加到poco类的项目中。所以请在这种情况下帮助我。
答案 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。您可以尝试以下步骤。
Add-Migration
(不要忘记将POCO课程添加到您的课程中
DBContext),您将看到生成的迁移中的更改。所以
您有两个选项可以手动删除数据库
然后运行Update-Database
命令,或者您可以在生成的迁移的Up
方法中删除自动生成的代码。您也可以在GitHub上找到该工具。
注意:对于触发器和存储过程,您必须在生成的迁移中手动调整脚本。
存储过程的步骤:
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
。