我只是有一个用mysql编写的现有数据库脚本,我只想将所有表导入到我的asp.netcore2.0web应用程序和entityframeworkcore中。另外,我想在我的项目中使用数据库优先的方法,这样所有的表都应该添加到带有poco类的项目中。所以在这种情况下请帮帮我。
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`
vhmi4jdf2#
实体框架核心采用代码优先的方法。此解决方案适用于sql server。您可以尝试以下步骤。对数据库运行脚本。下载并安装ef核心电动工具。按照上面提到的说明,它将生成c#项目中的所有模型poco类。跑 Add-Migration (别忘了在dbcontext中添加poco类),您将在生成的迁移中看到更改。所以您有两个选择,要么手动删除数据库,然后运行 Update-Database 或者您可以在中删除自动生成的代码 Up 生成迁移的方法。你也可以在github上找到这个工具。注意:对于触发器和存储过程,您必须在生成的迁移中手动tun脚本。存储过程的步骤:添加一个存储过程语法如下的文件 Alter 或者 Create 程序。跑 Add-Migration 生成空迁移。将类似的代码添加到 Up 方法。
Add-Migration
Update-Database
Up
Alter
Create
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 .
2条答案
按热度按时间niwlg2el1#
1运行以下命令:
2添加对microsoft.entityframeworkcore.tools.dotnet的引用
三。构建数据库
3.1安装以下nuget包
3.2脚手架
vhmi4jdf2#
实体框架核心采用代码优先的方法。此解决方案适用于sql server。您可以尝试以下步骤。
对数据库运行脚本。
下载并安装ef核心电动工具。
按照上面提到的说明,它将生成c#项目中的所有模型poco类。
跑
Add-Migration
(别忘了在dbcontext中添加poco类),您将在生成的迁移中看到更改。所以您有两个选择,要么手动删除数据库,然后运行Update-Database
或者您可以在中删除自动生成的代码Up
生成迁移的方法。你也可以在github上找到这个工具。
注意:对于触发器和存储过程,您必须在生成的迁移中手动tun脚本。
存储过程的步骤:
添加一个存储过程语法如下的文件
Alter
或者Create
程序。跑
Add-Migration
生成空迁移。将类似的代码添加到
Up
方法。跑
Update-Database
.