EF Core

概述

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework数据访问技术。 简单来说EFCore是一种ORM的技术。

ORM是什么?

ORM(Object Relational Mapping),让开发者用对象操作的形式操作关系型数据库。

常见的ORM

  1. EF Core
  2. Dapper
  3. SqlSugar
  4. FreeSql

使用

首先新建个.NET Core控制台项目,然后新建Book.cs类文件

输入以下内容

public class Book
    {
        public long Id { get; set; } //主键

        public string Title { get; set; }//标题
        
        public DateTime PubTime { get; set; }//发布日期
        public double Price { get; set; }//单价

        public string AuthorName { get; set; }//作者名字
    }

 安装NuGet包,命令如下(如果项目不是.NET 6.0以上版本可能会报错)

Install-Package Microsoft.EntityFrameworkCore.SqlServer

新建BookConfig.cs类,内容如下

  class BookConfig : IEntityTypeConfiguration<Book>
    {
        public void Configure(EntityTypeBuilder<Book> builder)
        {
            //表示实体类对应的数据库表的名字为T_Books
            builder.ToTable("T_Books");
            //这里没有配置各个属性子在数据库中列名和数据类型,EF Core将会默认把属性的名字作为列名,并且以属性的类型来推断数据库表中各列的数据类型
        }
    }

创建一个继承自DbContext类,叫TestDbContext

 class TestDbContext : DbContext
    {
        public DbSet<Book> Books { get; set; }


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            optionsBuilder.UseSqlServer("Server=.;Database=demo1;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;");
        }

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

为了使用EF Core生成数据库工具,NuGet为项目安装Microsoft.EnityFrameworkCore.Tools包,

Install-Package Microsoft.EntityFrameworkCore.Tools

执行Add-Migration命令

 项目生成文件夹

执行Update-database命令,数据库出现对应的表

 

 操作数据库

新增数据

  static async Task Main(string[] args)
        {
            using (TestDbContext ctx = new TestDbContext())
            {
                Book b1 = new Book
                {
                    AuthorName = "张三",
                    Title = "张三的标题",
                    Price = 59.8,
                    PubTime = new DateTime(2019, 3, 1)
                    
                };
                ctx.Books.Add(b1);
                await ctx.SaveChangesAsync();

            }

        }

 查询数据

 var Book = ctx.Books.Single(b => b.Title == "张三的标题");
                Console.WriteLine(Book.AuthorName);

删除数据

 Book book = ctx.Books.Single(b => b.Id == 2);

                ctx.Books.Remove(book);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值