zoukankan      html  css  js  c++  java
  • Intern Day10

    DbContext

    DbContext是数据库和领域模型之间的桥梁。使用它可以查询数据到你的 entitys 集合中,也可以通过它将 entitys 保存到底层数据库中, EF Core 中的 DbContext 拥有的模块:连接管理、查询数据、持久化数据、修改跟踪、缓存、事务管理,具体见:https://www.cnblogs.com/OFSHK/p/14441635.html

    使用步骤

    1. 安装EF,通过Alter+Enter即可。

    2. 创建 DbContext:创建一个PatientDbContext.cs,并继承EF中的基类DbContext

    using Microsoft.EntityFrameworkCore;
    
    namespace Demo_One
    {
        // 连接DbContext,而不是创建
        //该cs文件的目的:通过DbContext去连接数据库
        //该类主要用于对 DbContext 做一些必要的参数配置
        public class PatientDbContext:DbContext
        {
            public PatientDbContext(DbContextOptions<PatientDbContext> option) : base(option) // 记住
            {
            }
            
            // 新增几个DbSet<TEntity>属性用来表示实体集合 DbSet表示可用于增删改查操作的实体集  
            public DbSet<Patient>Patients { get; set; } // DbContext中每一个表加一个DbSet
        }
    }
    
    1. 注册 DbContext 注入到 ASP.NET Core 运行时:添加代码到Startup.cs的ConfigureServices方法下。
            public void ConfigureServices(IServiceCollection services)
            {
                //注册 DbContext 注入到ASP.NET Core运行时。
                // 要想在 ASP.NET Core 中使用,要将PatientDbContext注入到ServiceCollection容器中
                // 这里用pgsql作为底层存储,安装途径:先去EF官方文档上找到pqsql对应的NuGet程序包再进行安装
                //是Npgsql.EntityFrameworkCore.PostgreSQL,而不是Npgsql
                // 记住
                services.AddDbContext<PatientDbContext>(opt => opt.UseNpgsql(Configuration["ConnectionStrings:aliyun_pgsql"]));
    
               
                services.AddControllers();
                services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo {Title = "Demo_One", Version = "v1"}); });
            }
    
    1. DbContext 依赖注入:现在PatientDbContext已经注入到容器了,然后我们新建一个PatientController.cs,就可以在PatientController中通过依赖注入的方式获取PatientDbContext实例实例
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.AspNetCore.Components.Web;
    using Microsoft.AspNetCore.Mvc;
    
    namespace Demo_One.Controllers
    {
        // DbContext依赖注入
        // 在Startup中,PatientDbContext已经注入到容器了
        // 所以现在在PatientController中,通过依赖注入的方式去获取PatientDbContext实例
        // 通过构造函数注入
        
        //  MVC或者API的应用,当你在控制器中这么写的时候,
        // .NET Core会自动把你已注册的服务给注入进来,不需要你再去实例化了new
        
        [ApiController]
       // [Route("[Controller]")]
        [Route("api/patient")]
        public class PatientController:ControllerBase
        {
            
            private readonly PatientDbContext _patientDbContext;
            public PatientController(PatientDbContext patientDbContext) // 构造函数注入
            {
                _patientDbContext = patientDbContext;
            }
        ······
        ······
    
  • 相关阅读:
    HTML5:超文本标记语言
    Redis持久化
    ACID VS BASE+CAP
    Redis
    NoSQL(Redis、Menchche、MongoDB)
    transient关键字
    Struts2声明式验证相关问题
    struts2国际化相关问题
    Struts2
    SSH整合的详细步骤
  • 原文地址:https://www.cnblogs.com/OFSHK/p/14456945.html
Copyright © 2011-2022 走看看