一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包  

            ①Microsoft.EntityFrameworkCore.Tools

            ②Pomelo.EntityFrameworkCore.MySql (这个是第三方的ef mysql 中间件)

例如:

            .NetCore教程之 EFCore连接Mysql DBFirst模式

 

 

二:生成数据库的实体和EF的DBcontext对象,用到的是 Scaffold-DBcontext命令

            在程序包控制台输入以下命令

                      Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"

                      server:数据库地址,User Id:账号,Password:登录密码

                     如果是针对单表的更新,加一个-Tables 后面是要更新的表名

                     Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"  -Tables "myTable"

                     执行完成之后会生成指定的是Model ,注意:表必须有主键,才会生成,如果没有主机会报 Unable to generate entity type for table “xxxx” 警告,当然实体也不会生成

                     出现的问题:如果有表字段为 datetime类型的,生成的时候会报错 应输入标识符,处理方法:把.()去掉。此问题如果有大神看到帮忙解答下

                          

 

            例如:

           .NetCore教程之 EFCore连接Mysql DBFirst模式

 

 

三:创建标准的web应用,进行使用

       ①在appsettings.json配置数据库的地址信息,注意  SslModel=none例如

 "MySqlConnection": "Database='***';Data Source=****;User ID=***;Password=***;CharSet=utf8;SslMode=None"

 

       ② 在startup.cs 配置注入,其中有用到一些引用 顺手引用一下

    

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public void ConfigureServices(IServiceCollection services)

       {

           services.Configure<CookiePolicyOptions>(options =>

           {

               // This lambda determines whether user consent for non-essential cookies is needed for a given request.

               options.CheckConsentNeeded = context => true;

               options.MinimumSameSitePolicy = SameSiteMode.None;

           });

 

           //ef mysql 配置

           services.AddDbContext<drewtestContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));

 

           services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

       }

  ③之后就是标准的调用,例如在控制器中的使用

     

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class HomeController : Controller

   {

       drewtestContext _content;

       public HomeController(drewtestContext context)

       {

           _content = context;

       }

 

       public IActionResult Index()

       {

           List<SctonlyHome> list_sctonlyHomes = _content.SctonlyHome.ToList();

           return View();

       }

   }

到此就是基础的EF core mysql入门配置了。

分类:

技术点:

相关文章: