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


    一:创建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入门配置了。

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

  • 相关阅读:
    根据用户输入的时间查询那天的数据
    动软 生成 linq相关DAO
    pdf 移除密码 去除水印 批量去除水印 编辑文字 批量替换文字
    利用OCR识别扫描的jpg、tif文件的文字
    jstat命令详解
    IDEA自动编译设置
    IntelliJ IDEA:Field injection is not recommended
    阿里巴巴Druid数据库连接池配置详解及使用
    com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver的区别
    Java对元与分的金额的转换
  • 原文地址:https://www.cnblogs.com/DNLi/p/9524976.html
Copyright © 2020-2023  润新知