XiaoQi.Study项目(一)
1、项目地址
https://github.com/xiaoqiyaozou1/XiaoQi.Study
2、项目创建
vs 2019 创建 asp.net core api 项目
3、EF Core 的基本使用
1、创建类库
2、引入下图相关包

3、创建Model 类 可以分开创建,我为了方便放到了一个cs文件。
4、创建上下文类
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using XiaoQi.Study.EF; namespace XiaoQi.Study.EF
{
public class MyContext : DbContext
{
public MyContext(DbContextOptions<MyContext> options) : base(options)
{ }
public DbSet<UserInfo> UserInfos { get; set; }
public DbSet<RoleInfo> RoleInfos { get; set; } public DbSet<UserRole_R> UserRole_Rs { get; set; }
public DbSet<RoleMenu_R> RoleMenu_Rs { get; set; } public DbSet<MenuInfo> MenuInfos { get; set; } public DbSet<ButtonInfo> ButtonInfos { get; set; } public DbSet<MenuButton_R> MenuButton_Rs { get; set; }
//这部分对表的相关设置
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<RoleInfo>()
.HasKey(c => c.RoleId);
modelBuilder.Entity<UserInfo>()
.Ignore(c => c._RoleInfo)
.HasKey(c => c.UserId); modelBuilder.Entity<UserRole_R>()
.HasKey(c => c.UserRoleId);
modelBuilder.Entity<RoleMenu_R>()
.HasKey(o => o.RoleMenuId);
modelBuilder.Entity<MenuInfo>()
.HasKey(o => o.MenuInfoId);
modelBuilder.Entity<ButtonInfo>()
.HasKey(o => o.ButtonId);
modelBuilder.Entity<MenuButton_R>()
.HasKey(o => o.MenuButtonId); }
//设置表的连接字符串 或者sqlite 的绝对路径
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlite(@"Data Source=D:\Code\Project\XiaoQi.Study\XiaoQi.Study.API\DB\userinfo.db");
}
}
}
5、在 程序包管理器控制台下依次执行以下命令
Add-Migration InitialCreate
Add-Migration 命令为迁移搭建基架,以便为模型创建一组初始表。
Update-Database
Update-Database 命令创建数据库并向其应用新的迁移。
4、Swagger 的基本使用
1、安装 Swashbuckle.AspNetCore 包
2、添加并配置Swagger 中间件
1)Services 注册
//Swagger 相关注册
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "XiaoQi API", Version = "v1" }); //为Swagger json 和 UI 增加注释信息
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
2)启用中间件
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = string.Empty;
});
3)启用XML注释
右击 解决项目 点击
,在以下节点加入以下内容
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
XiaoQi.Study项目(一)的更多相关文章
- XiaoQi.Study 项目(三)
一.配置跨域 1.首先注册跨域要求 ,(可访问的IP.端口) //注册跨域 services.AddCors(options => { options.AddPolicy("XiaoQ ...
- XiaoQi.Study项目(二)
一.EF Core 使用的补充 1) 创建 接口 IEFCoreService 2) 实现 接口 EFCoreService 3) 在Startup.cs 中注册 ef 服务 并在控制器中注入使用 ...
- 使用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 ...
- 如何在GitHub上上传自己的项目
此文为转载,地址:https://blog.csdn.net/m0_37725003/article/details/80904824 本文链接:https://blog.csdn.net/m0_37 ...
- 手把手教你用原始方式上传项目至GitHub
小编GitHub:https://github.com/ds1889 首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join 有了自己的账号以后,就可以进行登 ...
- 新手小白如何向GitHub上提交项目
首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join 创建一个新的项目,填写项目名称,描述 创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上 ...
- Django创建项目时应该要做的几件事
终于可以在假期开始学习 Django 啦 !
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...
- 一台电脑支持2个git账号:gitlab+github
一.背景 1.公司使用gitlab保存代码,git已支持. 2.需要新增一个人github账户.创建study项目并提交到github上. 3.git提交时互相不混淆 二.操作流程 1.注册githu ...
随机推荐
- .net批量插入数据库,SqlBulkCopy方法
/// <summary> /// 把数据插入LessonQuestion表 /// </summary> /// <param name="lessontit ...
- python开发时小问题之端口占用
昨天开发时遇到个小问题: 在使用pycharm编写tornado代码时: 直接用这种方式开启了服务,当我想修改代码时发现端口已经被占用代码提交不上去 所以现在该关闭进程: 步骤一: 打开CMD 步骤二 ...
- HTTP的响应码?
响应头对浏览器来说很重要,它说明了响应的真正含义.例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求. l 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览 ...
- 算法笔记-Day_01(1001 害死人不偿命的(3n+1)猜想
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍下去,最后一定在某一步得到 n=1.卡拉兹在 1950 ...
- Flask添加新命令
代码: import click from flask import Flask app = Flask(__name__) @app.cli.command() def hg(): click.ec ...
- Mysql简单总结
基于Mac OS X系统 MySQL的安装和配置 首先进入 MySQL 官网,选择免费的Community版:MySQL Community Server.MySQL 官网提供了tar.gz和dmg两 ...
- Proto3:Arena分配指南
Arena分配是仅C++有的功能,在使用Protocol Buffer时,它可以帮助你优化你的内存使用,提高性能.在.proto文件中启用Arena分配会在生成的C++代码中添加处理Arena分配的额 ...
- Android注解支持Support Annotations详解
###注解支持(Support Annotations)Android support library从19.1版本开始引入了一个新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现 ...
- textarea 实现高度自动增长
有时候希望textarea 能够自动调整高度来适应输入的内容 网上看到了很多解决方案,比如动态创建一个隐藏的div,当用户输入的时候将textarea的内容绑定到div,由于div的高度会自动撑开,因 ...
- Alberto Del Bimbo:为什么说研究员要有想象力?
Del Bimbo:为什么说研究员要有想象力?" title="Alberto Del Bimbo:为什么说研究员要有想象力?"> 说到科研,与日本式的&q ...