基于Asp.net core + EF + Sqlite 5分钟快速上手一个小项目
虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了。好了不多废话了,直接开始!!
1.建立一个名为test的Asp.net core web应用程序
这一部分的目的是建立项目,并使用MVC框架。
2.导入依赖项(sqlite数据库 与 EF core)
这一部分的操作目的是可以让我们的项目可以使用操作数据库的一些功能。
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore
导入方式有两种:
1.使用程序包管理器控制台
方法1:在控制台输入 : dotenet add (项目名) package (包名)
方法2:直接在工具栏里面的NuGet包管理器里面选择对应的包安装即可。
3.建立数据模型和数据库上下文
在models文件夹下建立一个数据模型类Music。
// 歌曲信息
public class Music
{
// 歌曲ID与名称
public int Id { get; set; }
public string Title { get; set; } // 歌曲的流派ID与所属流派
public int GenreId { get; set; }
public Genre Context { get; set; } // 歌曲的歌手ID以及歌手
public int SingerId { get; set; }
public Singer Owner { get; set; }
} // 流派信息
public class Genre
{
// 歌曲流派Id及流派名
public int Id { get; set; }
public string Name { get; set; } // 该流派的歌曲集合
public IEnumerable<Music> Musics { get; set; }
} // 歌手信息
public class Singer
{
// 歌手id
public int Id { get; set; }
// 歌手名字
public string Name { get; set; }
// 歌手生日
public int BirthYear { get; set; }
}
建立数据库上下文类MyContext,并关联歌曲、流派、歌手数据。
这里要using Microsoft.EntityFrameworkCore;
其中public DbSet<Music> Musics { get; set; } 表示在数据库生成表Musics,同理Genre、Singer
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace test.Models
{
public class MyContext: DbContext
{
public MyContext(DbContextOptions<MyContext> options) : base(options)
{ } public DbSet<Music> Musics { get; set; } public DbSet<Genre> Genres { get; set; } public DbSet<Singer> Singers { get; set; }
}
}
4.配置文件
在Startup类:
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Sqlite;
using test.Models; //此处根据自己建立的项目而定
在Startup的ConfigureServices添加如下代码:
其中:前一段代码为sqlite数据库的绝对地址,后一段为应用程序与数据库的连接字符串
string connecttext = "Filename=F:\\core5\\mymusicwakawaka\\mymusicwakawaka\\mymusic.DB";
services.AddDbContext<MyContext>(options => options.UseSqlite(connecttext));
5.生成数据库
在程序包管理控制台使用Add-Migration InitialCreate命令生成数据库。
这时候会多出一个文件夹Migrations
使用命令Update-Database更新数据库内容。EF core更多内容点击这里。
6.添加控制器
该框架自动定义了以下内容:
分别为歌曲、流派、歌手添加对应的控制器。
在Share文件夹下的_Layout下添加歌曲、流派、歌手的标签。
7.运行试试
添加歌手界面
添加了以后:
完成!!
sqlite是一款轻量级数据库,可使用数据库查看器查看。
出处:https://www.cnblogs.com/WeiMLing/p/11352479.html
基于Asp.net core + EF + Sqlite 5分钟快速上手一个小项目的更多相关文章
- 麻雀虽小,五脏俱全。基于Asp.net core + Sqlite 5分钟快速上手一个小项目
虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了.好了不多废话了,直接开始!! 1.建立一个名为test的Asp.net core web应用程序 这一 ...
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- 如何基于asp.net core的Identity框架在mysql上作身份验证处理
首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...
- 基于Asp.Net Core的简单社区项目源代码开源
2019年3月27号 更新版本 本项目基于 ASP.NET CORE 3.0+EF CORE 3.0开发 使用vs2019 +sqlserver 2017(数据库脚本最低支持sql server 20 ...
- Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本)
Asp.net Core + EF Core + Bootstrap搭建的MVC后台通用管理系统模板(跨平台版本) 原创 2016年07月22日 10:33:51 23125 6月随着.NET COR ...
- asp.net core+ef core
asp.net core+ef core 官方的文档https://docs.asp.net/en/latest/tutorials/first-mvc-app/start-mvc.html 先来看一 ...
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...
- AServer - 基于Asp.net core Kestrel的超迷你http服务器
AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...
随机推荐
- Oracle Spatial分区应用研究之四:不同分区粒度+全局空间索引效率对比
1.实验目的 在实验之前先回答这样一个问题——对同一份数据使用不同的分区粒度,但均创建全局空间索引,问:它们的全局空间索引一致吗? 怎样算是一致的呢?R-TREE的树结构一致算一致吗?空间索引条目数及 ...
- 1.3 LVM条带化
1.什么是条带化 磁盘冲突:当多个进程同时访问一个磁盘时,可能会出现磁盘冲突.磁盘系统对访问次数(每秒的IOPS)和数据传输速率(读写速率,TPS)有限制.当达到这些限制时,后面需要访问磁盘的进程就需 ...
- 【剑指offer】平衡二叉树
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 分析:采用后序遍历的方式判断左右子树的高度差是否大于1 class Solution { public: bool flag; int f(T ...
- linux 下 jmeter 配置
一.在Linux服务器先安装sdk 1.先从客户端下载jdk1.8.0_144.tar.gz,再上传到服务器 2.解压:tar -xzf jdk1.8.0_144.tar.gz,生成文件夹 jdk1. ...
- 1139 First Contact PAT (Advanced Level)
原题链接: https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312 测试点分析: 首先来分析一下测试 ...
- ELK 索引生命周期管理
kibana 索引配置 管理索引 点击设置 --- Elasticsearch 的 Index management 可以查看 elk 生成的所有索引 (设置,Elasticsearch ,管理) 配 ...
- 常用 Maven 仓库地址
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/niuzhucedenglu/article ...
- tkinter基础-输入框、文本框
本节内容 了解输入框.文本框的使用方法 利用1制作简易界面 首先明确上面由几个元素组成:该界面由界面标题,输入框.两个按钮.文本框组成. 该界面我们需要实现的功能: 在输入框中输入文字,点击inser ...
- Cascader 级联选择器hover选择效果
官网例子 <div class="block"> <span class="demonstration">hover 触发子菜单< ...
- Python DBUtils 连接池对象 (PooledDB)
数据处理框架用到 mysql, 需要在多进程中的多线程中使用 mysql 的连接 使用到的模块: DBUtils 实现: 使用 DBUtils 中的 PooledDB 类来实现. 自己写一个类, 继承 ...