zoukankan      html  css  js  c++  java
  • Entity Framework Core使用笔记①

    EFCore:是一个orm(Object Relational Mappper)框架,将Domain class转换成数据库的tables;

     并且支持大部分常用数据库

    1.在visual stadio中建立了.net core的web项目,这里同时建立了EFCore.DomainModel类库存放Model;(这里建立.net core 的类库

     

     本次先放了书和书的分类两个表

    Books.cs类:

    namespace EFCore.DomainModel
    {
        public class Books
        {
            public Guid Id { get; set; }
            public string Auther { get; set; }
            public string BookName { get; set; }
            public DateTime BookOnmarket { get; set; }
            public Sorts Sort { get; set; }
        
    

     Sorts.cs类:

    namespace EFCore.DomainModel
    {
        public  class Sorts
        {
            //id
            public Guid Id { get; set; }
            public string BookId { get; set; }
            //type
            public string Types { get; set; }
            public List<Books> Book { get; set; }
    
        }
    }
    

     分类和书是一对多关系;

    2.安装EFcore

    使用Nuget-->MIcrosoft,EntityFramework,Core

     创建EFCore.Date并在里面使用Nuget搜索Microsoft.EntityFramework.core,这里转的是针对代码的,这里使用mysql,就需要装针对连接mysql的包,在之前EF支持的图里能看到,mysql需要安装Pomelo.EntityFramework.mysql;

     3.连接数据库并映射

    使用上面安装的包,建立Mycontext,继承Dbcontext,将使用dbset就可以将DomainModel和数据库表映射起来,使用重写OnConfiguring里面是连接数据库的信息,他在Mycontext加载的时候就会去实例化。

    class MyContext : DbContext
        {
            public DbSet<Book> Books { get; set; }
            public DbSet<Sort> Sorts { get; set; }
    
            //第一次实例化mycontext就会触发,onconfiguring,连接数据库,ef支持迁移
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseMySql("Server=localhost; Port=3306; Database=mysql; Uid=root; Pwd=root;");
            }
    
    
        }
    

     4.数据的迁移

    EF的迁移步骤

    ①.创建Domain Model

    ②.创建迁移文件

    ③.应用迁移到数据库,或生成SQL脚本

    在这之前需要安装Microsoft.EntityFrameworkCore.Tools

     迁移命令执行

     

     执行add-migration initia(启动项要设置成安装包的那个类库)l成功后

     

     里面带时间戳的迁移文件;

    下面那个文件是快照文件,记录上一次daomainmodel状态,下次更新如何去处理

    执行Update-Database就可以在数据库里创建表了(上面有一个写的datetime,导致我mysql一直报语法错误)

    之后会生成三个表

     history里记录的实迁移用的是哪个时间戳的文件,这样有利于共同开发。

  • 相关阅读:
    Delphi下的WinSock编程
    基于Delphi使用API实现Sock通讯
    delphi7与XE的变量与函数的改变
    Delphi7·ProgressBar控件
    delphi 进度条
    delphi带包编译详解(build with runtime package)
    TList 的 quicksort 算法研究和使用。
    Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结
    Delphi编译错误代码翻译表
    Firebird(火鸟)数据库 v3.0.3.32900官方版
  • 原文地址:https://www.cnblogs.com/liuyang95/p/12907597.html
Copyright © 2011-2022 走看看