zoukankan      html  css  js  c++  java
  • .NET Core EFCore零基础快速入门简单使用

     一、什么是 Entity Framework (EF) Core

    Entity Framework (EF) Core 是轻量化、可扩展和跨平台版的对象关系映射程序 (O/RM)数据访问技术,。 它将开发人员从编写大量 SQL 语句中解放出来。

    二、EF的相关程序包

    Microsoft.EntityFrameworkCore 核心程序包,封装了关键的核心代码,使用EF必须引用这个包

    Microsoft.EntityFrameworkCore.Design 设计包,用于在命令行工具下EF Core开发的工具套件

    Microsoft.EntityFrameworkCore.Tools 用于数据库的生成、迁移、生成表等

    三、EF Core支持的数据库引擎:SqlServer、Sqlite、PostgreSQL、MySql、Oracle等主流数据库,不同的数据库需要EF Core数据库提供程序支持。

    微软维护的数据库程序包

    Microsoft.EntityFrameworkCore.SqlServer

    Microsoft.EntityFrameworkCore.Sqlite

    Microsoft.EntityFrameworkCore.InMemory

    Microsoft.EntityFrameworkCore.Cosmos

    四、使用流程

    1、在项目里添加安装数据库程序包,我这里使用MySql数据库,管理Nuget程序包添加Microsoft.EntityFrameworkCore.Design、Pomelo.EntityFrameworkCore.MySql的引用后已经包含了Microsoft.EntityFrameworkCore的相关依赖

    2、创建数据库实体映射类

    复制代码
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
            public List<Post> Posts { get; } = new List<Post>();
        }
    复制代码
    复制代码
        public class Post
        {
            public int PostId { get; set; }
            public string Title { get; set; }
            public string Content { get; set; }
    
            public int BlogId { get; set; }
            public Blog Blog { get; set; }
        }
    复制代码

    3、新建一个继承DbContext的类作用是配置数据连接、操作数据库表等信息

    复制代码
        public class BloggingContext: DbContext
        {
            /// <summary>
            /// Blogs表的操作属性
            /// </summary>
            public DbSet<Blog> Blogs { get; set; }
    
            /// <summary>
            /// Posts
            /// </summary>
            public DbSet<Post> Posts { get; set; }
    
            /// <summary>
            /// 配置数据连接信息
            /// </summary>
            /// <param name="optionsBuilder"></param>
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseMySql("你的数据库连接字符串");
                base.OnConfiguring(optionsBuilder);
            }
        }
    复制代码

    4、添加数据库迁移文件:程序包管理控制台输入:

    Add-Migration InitialCreate    //InitialCreate是生成迁移文件的文件名,执行此命令后,会生成Migrations文件夹及相关的迁移文件
    Update-Database //生成数据库

    5、数据库:增、读、删、改操作

    复制代码
                using (var db = new BloggingContext())
                {
                    // Create
                    Console.WriteLine("Inserting a new blog");
                    db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
                    db.SaveChanges();
    
                    // Read
                    Console.WriteLine("Querying for a blog");
                    var blog = db.Blogs
                        .OrderBy(b => b.BlogId)
                        .First();
    
                    // Update
                    Console.WriteLine("Updating the blog and adding a post");
                    blog.Url = "https://devblogs.microsoft.com/dotnet";
                    blog.Posts.Add(
                        new Post
                        {
                            Title = "Hello World",
                            Content = "I wrote an app using EF Core!"
                        });
                    db.SaveChanges();
    
                    // Delete
                    Console.WriteLine("Delete the blog");
                    db.Remove(blog);
                    db.SaveChanges();
                }
    复制代码
  • 相关阅读:
    vue点击元素变色兄弟元素不变色
    获取今天昨天本月的时间段
    java.io.InputStream -- 1.8 初识,应用场景待更新
    java.io.FilterInputStream
    java.io.FileInputStream
    java.io.ByteArrayInputStream -- 1.8
    JavaBeans -- 1.8
    mysql 导出和导入数据
    tp5 数据库迁移工具 migrate&seed
    tp5模型一对一关联hasOne
  • 原文地址:https://www.cnblogs.com/51net/p/13429977.html
Copyright © 2011-2022 走看看