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里记录的实迁移用的是哪个时间戳的文件,这样有利于共同开发。

猜你喜欢

转载自www.cnblogs.com/liuyang95/p/12907597.html