天天看点

scaffold-dbcontext 可以根据数据库生成ef上下文(mysql,sqlserver,sqlite) DB First

1 在nuget包中引用两个包

必选

Microsoft.EntityFrameworkCore.Tools

sqlserver

Microsoft.EntityFrameworkCore.SqlServer

mysql

Pomelo.EntityFrameworkCore.Mysql

sqlite

Microsoft.EntityFrameworkCore.Sqlite

2使用命令生成(nuget管理控制台输入命令)

mysql

Scaffold-DbContext  "server=127.0.0.1;uid=user;pwd=pwd;database=databse;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models

sqlserver

Scaffold-DbContext  "server=127.0.0.1;uid=user;pwd=pwd;database=databse;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

sqlite

Scaffold-DbContext  "server=127.0.0.1;uid=user;pwd=pwd;database=databse;" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models

1,普通的命令

Scaffold-DbContext "Server=.\SQL2012;Database=Test;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

2,加force参数,当Models文件夹下已有数据库实体类时使用。

Scaffold-DbContext "连接字符串;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force

3,指定生成某一个数据库表的实体类。

Scaffold-DbContext "连接字符串;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force -tables Role

4 大小写转换,不和数据库一样了,如果要保持和数据库一致。增加 -usedatabasename即可。

Scaffold-DbContext "连接字符串;" Microsoft.EntityFrameworkCore.SqlServer -OutPutDir DbModels -force -usedatabasename