首页 > 编程语言 >ASP.NET Core 8 EntityFrameworkCore 初体验

ASP.NET Core 8 EntityFrameworkCore 初体验

时间:2024-04-16 09:34:40浏览次数:26  
标签:Core 初体验 单击 get EntityFrameworkCore set EFCore NET public

介绍

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

先决条件

Visual Studio 2022 : Visual Studio 2022 version 17.4 or later

.NET desktop development (under Desktop && Mobile) | .NET 桌面开发(在“桌面和移动版”下)

SQLite :SQLite Download Page

创建新项目

  • 打开 Visual Studio
  • 单击“新建项目”
  • 选择空白解决方案,然后单击“下一步”
  • 输入“EntityFrameworkCoreLearn”作为名称,然后单击“创建”
  • 右键解决方案,选择新增项目,选择ASP.NET Core的控制台应用,输入名称“EFCore.Test”,然后点击单击“创建”
  • 新增项目,选择ASP.NET Core的类库,输入名称“EFCore.EntityFrameworkCore”,然后点击单击“创建”
  • 新增项目,选择ASP.NET Core的类库,输入名称“EFCore.Models”,然后点击单击“创建”

创建模型

  1. 选择类库“EFCore.Models”,添加实体类

  2. 右键单击项目,然后选择“添加”>“类”,新增类Blog.csPost.cs

    namespace EFCore.Models
    {
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
    
            public List<Post> Posts { get; } = new();
        }
    }
    
    namespace EFCore.Models
    {
        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. 选择类库“EFCore.EntityFrameworkCore”,

    • 右键单击项目,然后选择”添加“>”项目引用“,然后选择“EFCore.Models”,点击确认

    • 右键单击项目,然后选择”管理Neget程序包“,安装以下程序包

      Microsoft.EntityFrameworkCore.SqlServer

    • 然后添加上下文类

  4. 右键单击项目,然后选择“添加”>“类”,右键新增类BloggingContext.cs

    using EFCore.Models;
    using Microsoft.EntityFrameworkCore;
    
    namespace EFCore.EntityFrameworkCore
    {
        public class BloggingContext : DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
    
            public string DbPath { get; }
    
            public BloggingContext()
            {
                DbPath = "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=BloggingDB";
            }   
    
            protected override void OnConfiguring(DbContextOptionsBuilder options)
                => options.UseSqlServer(DbPath);
        }
    }
    

创建数据库

  • “工具”>“NuGet 包管理器”>“程序包管理器控制台”

  • 默认项目切换到EFCore.EntityFrameworkCore

  • 运行以下命令

    Install-Package Microsoft.EntityFrameworkCore.Tools
    Add-Migration InitialCreate
    Update-Database
    

    这会安装 EF Core 的 PMC 工具Add-Migration 命令为迁移搭建基架,以便为模型创建一组初始表。 Update-Database 命令创建数据库并向其应用新的迁移。

创建、读取、更新和删除

  • 右键项目EFCore.Test>设为启动项目

  • 打开Program.cs,替换以下代码

    using EFCore.EntityFrameworkCore;
    using EFCore.Models;
    
    using var db = new BloggingContext();
    
    Console.WriteLine($"Database path: {db.DbPath}.");
    
    // 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();
    
    Console.ReadKey();
    
    
  • 执行项目EFCore.Test

参考文档

https://learn.microsoft.com/zh-cn/ef/core/get-started/overview/first-app?tabs=visual-studio

标签:Core,初体验,单击,get,EntityFrameworkCore,set,EFCore,NET,public
From: https://www.cnblogs.com/YuYangBlogs/p/18135534

相关文章

  • ASP.NET Core 8 Swagger UI 入门使用
    介绍Swashbuckle有三个主要组成部分:Swashbuckle.AspNetCore.Swagger:将SwaggerDocument对象公开为JSON终结点的Swagger对象模型和中间件。Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成SwaggerDocument对象的Swagger生成器。它通常与Swagger终......
  • 5.CentOS-7-Minimal 安装KubernetesV1.23.17&DockerV20.10.23
    1.环境准备主节点IP:192.168.254.130node1IP:192.168.254.131node2IP:192.168.254.132OSversion:CentOS7miniCPUArchitecture:x86_64/amd64K8sversion:v1.23.17Dockerversion:20.10.232.安装前准备#安装依赖yuminstall-ycurlwgetsystemdbash-completi......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推荐一个.NET开源、免费(MITLicense)、功能丰富、灵活易用、小巧(不到1M)的Windows窗口增强工具:SmartSystemMenu。工具介绍SmartSystemMenu扩展了......
  • .NET Core 8 部署在 IIS 的简单三步
    .NET 部署 IIS 的简单步骤一:下载dotnet-hosting-x.y.z-win.exe,下载地址:.NETDownloads(Linux,macOS,andWindows)(microsoft.com) .NET 部署 IIS 的简单步骤二:选择对应的版本,点击进入详细页,如8.0的版本:版本最好和你的开发环境版本一致, 比如我的开发环境目......
  • Docker安装部署Jenkins并发布NetCore应用
    Docker安装Jenkins#拉取镜像dockerpulljenkins/jenkins#查看镜像dockerimages#运行jenkins#8080端口为jenkinsWeb界面的默认端口13152是映射到外部:前面的是映射外部#50000端口为jenkins的默认代理节点(Agent)通信端口13153是映射到外部#--restart=on-fa......
  • 用k8s的networkpolicy模拟租户隔离、组间pod隔离
    pod之间的通信默认是不隔离的,他们之是能相互通信的,但如果你想通过IP地址或者端口来管理网络通信,那么就可以使用k8s的networkpolicy功能。该功能的实现原理是默认都不通过,显示添加白名单。如果指定namespace,那么该networkpolicy生效的范围是本namespace内。如果没有指定namespace,......
  • vue2项目 network无法访问此网站
    vue2项目启动后,local可以访问,但是network不能访问防火墙等等都检查了查到原因如下:本来写的是这样,实际上端口号需要保持一致devServer:{disableHostCheck:true,open:true,host:'0.0.0.0',port:8002,https:false,hotOnly:false,public......
  • 05_NET中使用Ocelot网关(负载均衡、限流、认证)
    Ocelot是一个用.NETCore实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与ServiceFabric、ButterflyTracing集成。而且这些功能都只需要简单的配置即可完成。官网:GitHub-ThreeMammals/Ocelot:.NETAPIGateway......
  • 4. Kubernetes 之 WebUI管理 Portainer
    1.安装PortainerPortainer是一个轻量级的容器管理工具,可以用来管理Docker和Kubernetes,它提供了一个Web界面来方便我们管理容器,官方网址:https://www.portainer.io/1.使用官方提供的yaml文件安装:在master节点上安装portainer,并将其暴露在NodePort30777上kubectlap......
  • 【Kubernetes 系列】如何优雅的配置 Java 微服务
    【Kubernetes系列】如何优雅的配置Java微服务 目标创建KubernetesConfigMap和Secret使用MicroProfileConfig注入微服务配置一、实现外部化应用配置在Kubernetes中,为docker容器设置环境变量有几种不同的方式,比如:Dockerfile、kubernetes.yml、Kubernet......