zoukankan      html  css  js  c++  java
  • asp.net core 3.1使用EFCore

    1.增加一个实体类

    /// <summary>
        /// 团队成员模型
        /// </summary>
        public class Member
        {
            /// <summary>
            /// 团队成员主键
            /// </summary>
            public int Id { set; get; }
            /// <summary>
            /// 团队成员名
            /// </summary>
            public string FirstName { set; get; }
            /// <summaryhua
            /// 团队成员花名
            /// </summary>
            public string NickName { set; get; }
    
            /// <summary>
            /// 团队主键
            /// </summary>
            public int TeamId { set; get; }
        }

    2.增加一个数据库上下文实体

    public class MemberContext : DbContext
        {
            public MemberContext(DbContextOptions<MemberContext> options) : base(options)
            {
            }
    
            public DbSet<Member> Members { get; set; }
        }
    

    3.注册上下文到IOC容器

         public void ConfigureServices(IServiceCollection services)
            {
                // 1、注册上下文到IOC容器
                services.AddDbContext<MemberContext>(options => {
                    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
                });
            }

    4.appsettings.json 添加数据库配置

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ConnectionStrings": {
        "DefaultConnection": "Data Source=.;Initial Catalog=memberservice;Persist Security Info=True;User ID=sa;Password=tony"
      }
    }

    5.安装EF Core 命令行工具

    dotnet tool install --global dotnet-ef

    6.安装NuGet包 Microsoft.EntityFrameworkCore.Design

    7.增加初始化迁移,更新数据库

    执行命令

    dotnet ef migrations add test

    执行成功后,在项目中会生成脚本操作

    执行命令

    dotnet ef database update

    执行成功后,生成数据库

    8.添加服务接口

        public interface IMemberService
        {
            IEnumerable<Member> GetMembers();
            IEnumerable<Member> GetMembers(int teamId);
        }

    9.添加服务实现

        public class MemberServiceImpl : IMemberService
        {
            public readonly IMemberRepository memberRepository;
            public IEnumerable<Member> GetMembers()
            {
                return memberRepository.GetMembers();
            }
            public IEnumerable<Member> GetMembers(int teamId)
            {
                return memberRepository.GetMembers(teamId);
            }
        }

    10.添加仓储接口

        public interface IMemberRepository
        {
            IEnumerable<Member> GetMembers();
          
            IEnumerable<Member> GetMembers(int teamId);
        
        }

    11.添加仓促实现

        public class MemberRepository : IMemberRepository
        {
            public MemberContext teamContext;
            public MemberRepository(MemberContext teamContext)
            {
                this.teamContext = teamContext;
            }
          
            public IEnumerable<Member> GetMembers()
            {
                return teamContext.Members.ToList();
            }
    
            public IEnumerable<Member> GetMembers(int teamId)
            {
                return teamContext.Members.Where(memeber => memeber.TeamId == teamId);
            }
        }

    12.注册service和仓促

         public void ConfigureServices(IServiceCollection services)
            {
                // 1、注册上下文到IOC容器
                services.AddDbContext<MemberContext>(opt =>
               opt.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));  //使用SqlServer数据库
    
                // 2、注册成员service
                services.AddScoped<IMemberService, MemberServiceImpl>();
    
                // 3、注册成员仓储
                services.AddScoped<IMemberRepository, MemberRepository>();
    
                services.AddControllers();
            }

    13.添加Controller

        [Route("api/[controller]")]
        [ApiController]
        public class MembersController : ControllerBase
        {
            private readonly IMemberService memberService;
    
            public MembersController(IMemberService memberService)
            {
                this.memberService = memberService;
            }
            /// <summary>
            /// 查询所有成员信息
            /// </summary>
            /// <param name="teamId">?teamId参数结尾方式</param>
            /// <returns></returns>
            [HttpGet]
            public ActionResult<IEnumerable<Member>> GetMembers(int teamId)
            {
                if (teamId == 0)
                {
                    return memberService.GetMembers().ToList();
                }
                else
                {
                    return memberService.GetMembers(teamId).ToList();
                }
            }
        }

    14.查看运行结果

  • 相关阅读:
    关于<asp:checkBoxList>控件的对齐方法
    heckboxlist详细用法、checkboxlist用法、checkboxlist
    layoutit note
    查看linux启动的线程信息
    【转】如何修改maven工程jdk版本
    开源bug管理工具-Cynthia
    linux系统相关、硬件、资源
    Nginx文件服务器配置
    windows安装zookeeper单机版
    centos安装nginx
  • 原文地址:https://www.cnblogs.com/wangdash/p/13700799.html
Copyright © 2011-2022 走看看