ORM中的EF Core应用

什么是ORM
即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 
 
ORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
 

ORM的方法论基于三个核心原则:

简单:以最基本的形式建模数据
传达性:数据库结构被任何人都能理解的语言文档化
精确性:基于数据模型创建正确标准化了的结构

 

EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。

 

获取EF Core

  通过NuGet获取要使用的数据库支持。比如:Microsoft SQL Sever

  打开NuGet程序包管理器控制台,输入:Install-Package Microsoft.EntityFrameworkCore.SqlServer

 

操作步骤如下:

1、建立实体类。

复制代码
 public  class Book
    {
        public long Id { get; set; }

        public string Tiltle { get; set; }
        public DateTime PubTime { get; set; }

        public double Price { get; set; }
    }
复制代码

 

2、创建实现了IEntityTypeConfiguration接口的实体配置类,配置实体类和数据库表的对应关系

 class BookConfig : IEntityTypeConfiguration<Book>
    {
        public void Configure(EntityTypeBuilder<Book> builder)
        {
            //T_Books表名
            builder.ToTable("T_Books");
        }
    }

 

3、创建继承Dbcontext的类,连接什么数据库,以及读取哪里的IEntityTypeConfiguration

复制代码
 class MyDbContext:DbContext
    {
        public DbSet<Book> Books { get; set; }
   


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            //写连接数据库字符串
            optionsBuilder.UseSqlServer
                ("Data Source=.;Initial Catalog=Test;Integrated Security=True");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            //从当前 程序集加载所有的IEntityTypeConfiguration

            modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);

        }
    }
复制代码

 

4、通过NuGet获取要使用的数据库支持。比如:Microsoft.EntityFrameworkCore.Tools

  打开NuGet程序包管理器控制台,输入:Install-Package Microsoft.EntityFrameworkCore.Tools安装成功后再

执行Add-Migration +名字   成功后 再执行 Update-Database成功后就可以在数据库建立成功的表。

 

 

posted @   NangFah  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示