1、项目地址

https://github.com/xiaoqiyaozou1/XiaoQi.Study

2、项目创建

  vs 2019 创建 asp.net core api 项目

3、EF Core 的基本使用

  1、创建类库

  2、引入下图相关包

  

 3、创建Model 类 可以分开创建,我为了方便放到了一个cs文件。

  4、创建上下文类

  1. using Microsoft.EntityFrameworkCore;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using XiaoQi.Study.EF;
  6.  
  7. namespace XiaoQi.Study.EF
  8. {
  9. public class MyContext : DbContext
  10. {
  11. public MyContext(DbContextOptions<MyContext> options) : base(options)
  12. {
  13.  
  14. }
  15. public DbSet<UserInfo> UserInfos { get; set; }
  16. public DbSet<RoleInfo> RoleInfos { get; set; }
  17.  
  18. public DbSet<UserRole_R> UserRole_Rs { get; set; }
  19. public DbSet<RoleMenu_R> RoleMenu_Rs { get; set; }
  20.  
  21. public DbSet<MenuInfo> MenuInfos { get; set; }
  22.  
  23. public DbSet<ButtonInfo> ButtonInfos { get; set; }
  24.  
  25. public DbSet<MenuButton_R> MenuButton_Rs { get; set; }

  26.     //这部分对表的相关设置
  27. protected override void OnModelCreating(ModelBuilder modelBuilder)
  28. {
  29. modelBuilder.Entity<RoleInfo>()
  30. .HasKey(c => c.RoleId);
  31. modelBuilder.Entity<UserInfo>()
  32. .Ignore(c => c._RoleInfo)
  33. .HasKey(c => c.UserId);
  34.  
  35. modelBuilder.Entity<UserRole_R>()
  36. .HasKey(c => c.UserRoleId);
  37. modelBuilder.Entity<RoleMenu_R>()
  38. .HasKey(o => o.RoleMenuId);
  39. modelBuilder.Entity<MenuInfo>()
  40. .HasKey(o => o.MenuInfoId);
  41. modelBuilder.Entity<ButtonInfo>()
  42. .HasKey(o => o.ButtonId);
  43. modelBuilder.Entity<MenuButton_R>()
  44. .HasKey(o => o.MenuButtonId);
  45.  
  46. }
          //设置表的连接字符串 或者sqlite 的绝对路径
  47. protected override void OnConfiguring(DbContextOptionsBuilder options)
  48. {
  49. options.UseSqlite(@"Data Source=D:\Code\Project\XiaoQi.Study\XiaoQi.Study.API\DB\userinfo.db");
  50. }
  51. }
  52. }

  5、在 程序包管理器控制台下依次执行以下命令

  Add-Migration InitialCreate

  Add-Migration 命令为迁移搭建基架,以便为模型创建一组初始表。

  Update-Database

  Update-Database 命令创建数据库并向其应用新的迁移。

4、Swagger 的基本使用

  1、安装 Swashbuckle.AspNetCore 包

  2、添加并配置Swagger 中间件

    1)Services 注册 

  1. //Swagger 相关注册
  2. services.AddSwaggerGen(c =>
  3. {
  4. c.SwaggerDoc("v1", new OpenApiInfo { Title = "XiaoQi API", Version = "v1" });
  5.  
  6. //为Swagger json 和 UI 增加注释信息
  7. var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
  8. var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
  9. c.IncludeXmlComments(xmlPath);
  10. });

    2)启用中间件

  1. app.UseSwagger();
  2. app.UseSwaggerUI(c =>
  3. {
  4.  c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
  5. c.RoutePrefix = string.Empty;
  6. });

   3)启用XML注释

  右击 解决项目 点击,在以下节点加入以下内容

  1. <PropertyGroup>
  2. <GenerateDocumentationFile>true</GenerateDocumentationFile>
  3. <NoWarn>$(NoWarn);1591</NoWarn>
  4. </PropertyGroup>

  

  

XiaoQi.Study项目(一)的更多相关文章

  1. XiaoQi.Study 项目(三)

    一.配置跨域 1.首先注册跨域要求 ,(可访问的IP.端口) //注册跨域 services.AddCors(options => { options.AddPolicy("XiaoQ ...

  2. XiaoQi.Study项目(二)

    一.EF Core 使用的补充 1) 创建 接口 IEFCoreService 2)   实现 接口 EFCoreService 3) 在Startup.cs 中注册 ef 服务 并在控制器中注入使用 ...

  3. 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)

    1.下载jenkins 地址:https://jenkins.io/index.html 本人下载了2.19.3版本的war包:jenkins.war 2.安装jenkins 拷贝jenkins.wa ...

  4. 如何在GitHub上上传自己的项目

    此文为转载,地址:https://blog.csdn.net/m0_37725003/article/details/80904824 本文链接:https://blog.csdn.net/m0_37 ...

  5. 手把手教你用原始方式上传项目至GitHub

    小编GitHub:https://github.com/ds1889 首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join 有了自己的账号以后,就可以进行登 ...

  6. 新手小白如何向GitHub上提交项目

    首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join 创建一个新的项目,填写项目名称,描述 创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上 ...

  7. Django创建项目时应该要做的几件事

    终于可以在假期开始学习 Django 啦 !

  8. Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

    Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...

  9. 一台电脑支持2个git账号:gitlab+github

    一.背景 1.公司使用gitlab保存代码,git已支持. 2.需要新增一个人github账户.创建study项目并提交到github上. 3.git提交时互相不混淆 二.操作流程 1.注册githu ...

随机推荐

  1. Qt 添加Includes、Libraries库

    1 #------------------------------------------------- # # 加载相机SDK-Includes-Libraries # #------------- ...

  2. GOM通区插件-支持GOM绝对路径-读取配置项-分割字符等功能。不定期更新

    A-A+ 2019年07月19日 Gom引擎 阅读 45 views 次   [@Main] #IF #SAY [<读配置项/@读配置项>] [<写配置项/@写配置项>] [& ...

  3. hql错误:No data type for node: org.hibernate.hql.ast.tree.IdentNode

    今天写了一个查询,用的是hql,数据库是mysql.多表联查,结果报错了报: \-[IDENT] IdentNode: 'routerNumber' {originalText=routerNumbe ...

  4. 吴裕雄--天生自然 R语言开发学习:回归(续四)

    #------------------------------------------------------------# # R in Action (2nd ed): Chapter 8 # # ...

  5. django models 中choices之用法举例

    CHOICES常用做单选属性,下面举例在django models中人物性别的用法: 我们先定义一个模型,名字为Students ,这个Students 包含了名字和性别两个字段,代码如下: from ...

  6. mongodb 4.0配置认证模块

    use admin db.createUser({user:"root",pwd:"xxx",roles:[{role:"root",db: ...

  7. Emacs key bindings for vim users

    Emacs key bindings for vim users | Scarletsky 盒子 盒子 博客 分类 标签 关于 RSS 搜索 文章目录 简介 Emacs 是一个文本编辑器,号称是伪装成 ...

  8. MySQL show命令的用法

    show tables或show tables from database_name; // 显示当前数据库中所有表的名称 show databases; // 显示mysql中所有数据库的名称 sh ...

  9. Matplotlib数据可视化(3):文本与轴

      在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...

  10. git指令-版本回退

    git指令-版本回退 回顾: 1. 修改文件 2. 添加到暂存区并提交 回顾对readme共三次修改: 1. 版本1:wrote a readme file Git is a version cont ...