zoukankan      html  css  js  c++  java
  • NetCore+MySql+EF 数据库生成实体模型

    NetCore版本    2.1

    1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台”

    分别安装以下几个包

    Mysql 版本:

     MySql.Data.EntityFrameworkCore                  V-8.0.16  
     Pomelo.EntityFrameworkCore.MySql                 V-2.1.1
     Microsoft.EntityFrameworkCore.Tools                V-2.1.1
     Microsoft.VisualStudio.Web.CodeGeneration.Design        V-2.1.1

    2.在程序包包管理器控制台   中执行以下语句生成 实体类

    Scaffold-DbContext "server=.;userid=;pwd=xxx;port=3306;database=;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force

    参数说明:

    -OutputDir *** 实体文件所存放的文件目录
    -ContextDir *** DbContext文件存放的目录
    -Context *** DbContext文件名
    -Schemas *** 需要生成实体数据的数据表所在的模式
    -Tables *** 需要生成实体数据的数据表的集合
    -DataAnnotations
    -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
    -Force 强制执行,重写已经存在的实体文件

    在这里需要注意的问题 

    项目结构

    1.Web

    2.Entity

    1.实体生成在Entity 中,但是Pomelo.EntityFrameworkCore.MySql  报错 了,但是在Web项目中就能生成

    解决方案 主项目添加实体项目的依赖 问题解决

    2.从数据库读取到内存时  报了错误 显示 

    Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalParameterBuilder..ctor(Microsoft.EntityFrameworkCore.Storage.IRelationalTypeMapper

    原因是因为Pomelo.EntityFrameworkCore.MySql 的版本 V2.0.0 改成 V2.1.1 的解决问题

    综上  nuget 的引用 安装的时候自动会检测 依赖会大大降低 包版本的问题,但是 有的问题还是不能自定检测出来。

    如果想避免此类的问题尽量引用相同版本的包!

  • 相关阅读:
    区块链中的随机数 nonce
    SaaS(软件即服务)、PaaS(平台即服务)、IaaS(基础架构即服务)、BaaS(区块链即服务)
    程序插桩简介
    侧链技术
    闪电/雷电网络
    Ubuntu16.04安装/升级openssl到1.1版本
    Ubuntu16.04升级Python3及其pip3并切换为默认版本
    Python——/usr/bin/env: ‘python(3) ’: No such file or directory
    TCP通信功能 (agent功能)
    gin框架web操作数据库
  • 原文地址:https://www.cnblogs.com/smalldragon-hyl/p/10783577.html
Copyright © 2011-2022 走看看