当前位置: 萬仟网 > IT编程>开发语言>.net > .NetCore教程之 EFCore连接Mysql DBFirst模式

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

2018年08月26日  | 萬仟网IT编程  | 我要评论
一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包 ①Microsoft.EntityFrameworkCore.Tools ②Pomelo.EntityFrameworkCore.MySql (这个是第三方的ef mysq ...

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

            ①microsoft.entityframeworkcore.tools

            ②pomelo.entityframeworkcore.mysql (这个是第三方的ef mysql 中间件)

例如:

            

 

 

二:生成数据库的实体和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类型的,生成的时候会报错 应输入标识符,处理方法:把.()去掉。此问题如果有大神看到帮忙解答下

                          

 

            例如:

           

 

 

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

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

 "mysqlconnection": "database='***';data source=****;user id=***;password=***;charset=utf8;sslmode=none"

 

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

    

 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);
        }

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

     

 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入门配置了。

 

 

----再牛逼的梦想,也抵不住我傻逼似的坚持!别在该奋斗的年纪,贪图安逸。 今天多学一点,明天的路更宽!

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2021  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com