麻雀虽小,五脏俱全。基于Asp.net core + 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是一款轻量级数据库,可使用数据库查看器查看。
麻雀虽小,五脏俱全。基于Asp.net core + Sqlite 5分钟快速上手一个小项目的更多相关文章
- 基于Asp.net core + EF + Sqlite 5分钟快速上手一个小项目
虽然该方法不会用在实际开发中,但该过程对于初学者还是非常友好的,真应了麻雀虽小,五脏俱全这句话了.好了不多废话了,直接开始!! 1.建立一个名为test的Asp.net core web应用程序 这一 ...
- 基于ASP.Net Core开发一套通用后台框架记录-(项目的搭建)
写在前面 本系列博客是本人在学习的过程中搭建学习的记录,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 前期我不会公开源码,我想是一点点敲代码,不然复制.粘贴那就没意思了. ...
- Asp.net Core 部署到Azure.cn的一个小问题
前一段尝试在azure.cn上部署Aps.net Core未成功,报503错误!在网上查到是Azure.cn的问题,未能完美支持Asp.net Core! Asp.net Core发表正式版了,又尝试 ...
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
最近使用vscode比较多. 学习了一下如何在mac上使用vscode开发asp.netcore项目. 这里是我写的关于vscode的一篇文章: https://www.cnblogs.com/cgz ...
- 如何基于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 ...
- AServer - 基于Asp.net core Kestrel的超迷你http服务器
AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...
- 基于ASP.NET Core 创建 Web API
使用 Visual Studio 创建项目. 文件->新建->项目,选择创建 ASP.NET Core Web 应用程序. 基于 ASP.NET Core 2.0 ,选择API,身份验证选 ...
- 基于ASP.Net Core开发的一套通用后台框架
基于ASP.Net Core开发一套通用后台框架 写在前面 这是本人在学习的过程中搭建学习的框架,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 知其然,知其所以然,并非重 ...
随机推荐
- python:对list去重
1.set()方法 numbers = [1,7,3,2,5,6,2,3,4,1,5] new_numbers = list(set(numbers)) print new_numbers 输出 [1 ...
- 使用memcpy函数时要注意拷贝数据的长度
memcpy函数简介 memcpy函数是C/C++语言中的一个用于内存复制的函数,声明在 string.h 中(C++是 cstring).其原型是: void *memcpy(void *desti ...
- centos7 intall nvidia driver
此教程是介绍于 CentOS 7 以上的 Linux 系统中安装 NVIDIA 显卡驱动和 CUDA Toolkit .此文中以 CentOS 7.4 64 bit 为例,显卡型号为 NVIDIA T ...
- QML CheckBox的使用
"人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想. -- 爱献生" 这个在QT creator 帮助文档中非常容易查到. Import Statement: impor ...
- 关于su下bash:xxx :command not found
今天在新建组的时候出了问题: $ su Password: # groupadd prj bash: groupadd :command not found 我就纳闷,明明是在su权限下,怎么还不能使 ...
- CPU使用率过高问题定位
(1)top 命令 ->查询出CPU使用率最高的 PID编号. (2)top -H p PID编号 ->能查询出所有线程的CPU使用率的列表(线程编号也在PID列). (3)jstack ...
- Linux下创建Oracle19C的数据库实例
接上一篇博客,安装 Oracle19chttps://www.cnblogs.com/xuzhaoyang/p/11264557.html 切换到root用户下,切换目录到db_1,执行,遇到选择路径 ...
- ForEach Controller学习
1.ForEach Controller(循环控制器) 作用:ForEach Controlle一般和用户自定义变量(User Defined Variables)一起使用,其在用户自定义变量中读取一 ...
- vue封装一个简单的div框选时间的组件
记录一下我前段时间封装的一个vue组件吧.技术需要积累,有时间我把我之前写的还不错的组件都开源出来.并尝试vue和react 两种方式的组件封装.今天简单写下鼠标框选div选中效果的封装吧. div框 ...
- 【Centos】Centos7.5取消自动锁屏功能
目录 00. 目录 01. 问题描述 02. 问题分析 03. 解决办法 04. 附录 00. 目录 @ 参考博客:[Centos]Centos7.5取消自动锁屏功能 01. 问题描述 Centos7 ...