EF Core入门例子(以SqLite为数据库)
测试环境:
visual studio 2017
.net core 2.1
具体步骤如下:
1 新增名称为EFCoreDemo的.net core控制台程序,版本选择.net core 2.1,项目不能放到带中文的目录下,不然到后面执行Add-Migration命令时会报如下的错误

同时,如果这个解决方案有多个项目,一定要把当前项目设为启动项目,且程序包管理器控制台默认项目一定要选对,不然到后面执行Add-Migration命令时会报如下的错误:


2 利用Nuget安装Microsoft.EntityFrameworkCore.Sqlite,版本选择2.2.6及安装Microsoft.EntityFrameworkCore.Tools,版本选择2.2.6,如下图:
(注意:安装Microsoft.EntityFrameworkCore.Sqlite时,会把EF Core对应的依赖包Microsoft.EntityFrameworkCore等都自动安装上,不用再单独安装 ,如果数据库是Sql Server,则安装Microsoft.EntityFrameworkCore.SqlServer)


3 新增实体类Student,并编辑如下:
using System;
using System.Collections.Generic;
using System.Text;namespace EFCoreDemo
{public class Student{public long Id { set; get; }public string Name { set; get; }}
}
4 新增Student类对应的配置类StudentConfig,并编辑如下:
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Text;namespace EFCoreDemo
{public class StudentConfig : IEntityTypeConfiguration<Student>{public void Configure(EntityTypeBuilder<Student> builder){builder.ToTable("Student");}}
}
5 新增上下文类MyDbContext,并编辑如下:
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;namespace EFCoreDemo
{public class MyDbContext:DbContext{public DbSet<Student> Students { set; get; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){base.OnConfiguring(optionsBuilder);optionsBuilder.UseSqlite("Data Source=KnowledgeDataBase.sqlite;");}protected override void OnModelCreating(ModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);}}
}
上面的的KnowledgeDataBase.sqlite为SqLite的数据库文件名称
6 打开程序包管理控制台,
6.1 输入命令:Add-Migration Init,如下图:

然后会在项目中自动生成目录Migrations,并自动3个类,不要动它们,如下图:

6.2 输入命令:Update-database,会执行更新,如下图:

由于用的是SqLite数据库,会在项目中生成一个名为
KnowledgeDataBase.sqlite的数据库文件,并设置为"始终复制",如下图:

7 主程序编辑如下:
using System;
using System.Linq;namespace EFCoreDemo
{class Program{static void Main(string[] args){Student stu = new Student();stu.Name = "zxy";MyDbContext myDbContext = new MyDbContext();myDbContext.Add(stu);myDbContext.SaveChanges();var students=myDbContext.Students.Where(a => a.Name == "zxy");foreach (var item in students){Console.WriteLine($"Id:{item.Id} Name:{item.Name}");}Console.WriteLine("执行完毕");Console.ReadLine();}}
}
运行结果如下:

好了,本文的内容到此结束
相关文章:
EF Core入门例子(以SqLite为数据库)
测试环境: visual studio 2017 .net core 2.1 具体步骤如下: 1 新增名称为EFCoreDemo的.net core控制台程序,版本选择.net core 2.1,项目不能放到带中文的目录下,不然到后面执行Add-Migration命令时会报如下的错误…...
centos7 安装nginx
在 CentOS 7 上安装 Nginx,你可以选择从官方仓库(EPEL)安装,或者手动编译安装。以下是通过 EPEL 安装 Nginx 的步骤: 方法一:通过 EPEL 仓库安装 添加 EPEL 仓库: sudo yum install epel-relea…...
【Linux Day14 UDP网络通讯】
UDP网络通讯 UDP报文结构: 16位源端口:用于记录发送端的端口号(占用两个字节)16位目的端口:用于记录接收端的端口号(占用两个字节)16位UDP长度:确定UDP报文总长度,&…...
指针的深入了解6
1.回调函数 回调函数就是一个通过函数指针调用的函数。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数 时,被调用的函数就是回调函数。回调函数不是由该函数的实现方直接调用࿰…...
PHP之PDO_MYSQL扩展安装步骤
1,如果有php源码包可以不用下载,在 源码包下的 ext/ 下面可以找到 cd php-8.1.9/ext/pdo_mysql 2,如果存在,直接安装 /usr/local/php-8.1.9/bin/phpize ./configure --with-php-config/usr/local/php-8.1.9/bin/php-config make &&a…...
【pytorch】nn.linear 中为什么是y=xA^T+b
我记得读教材的时候是yWxb, 左乘矩阵W,这样才能表示线性变化。 但是pytorch中的nn.linear中,计算方式是yxA^Tb,其中A是权重矩阵。 为什么右乘也能表示线性变化操作呢?因为pytorch中,照顾到输入是多个样本一起算的&…...
vite打包原理
vite 工程化开发:打包工具 启动速度很快 核心原理还是webpack 把webpack封装了,把webpack对象封装了 和vue2整体结构几乎一致 webpack两种模式:开发&生产 代码打包编译,本地起一个web服务器实时预览编译后的结果 build 命令模…...
导出pdf 加密、加水印、加页脚
1.依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency> <dependency> …...
Flutter 仿抖音 TikTok 上下滑动 播放视频
Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架,视频播放使用 video_player github:GitHub - PangHaHa12138/TiktokVideo: Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架 实现功能: 1.上下滑动自动播放切换视频,loading 封面…...
计算机网络——网络层(2)
计算机网络——网络层(2) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.…...
01-16Maven-SpringBoot入门
Maven继承Maven高级SpringSpringBoot入门 Maven 一、概念及功能 概念:Maven是Apache软件基金会组织维护的一款专门为Java项目提供项目构建和依赖管理的工具 1.1作用: 项目构建 构建:是一个将代码从开发阶段到生产阶段的一个过程…...
微信小程序(二十七)列表渲染改变量名
注释很详细,直接上代码 上一篇 新增内容: 1.改变默认循环单元item变量名 2.改变默认循环下标index变量名 基础模板有问题可以先看上一篇 源码: index.wxml <view class"students"><view class"item"><te…...
k8s之安装部署及kuboard发布应用
目录 环境准备 系统规划 配置免密 将桥接的IPv4流量传递到iptables的链 系统基础配置 安装docker 安装docker及基础依赖 配置docker的仓库下载地址 部署k8s 添加阿里云的k8s源 安装kubeadm,kubelet和kubectl 初始化masteer节点 部署node节点 部署flanne…...
JProfiler for Mac:提升性能和诊断问题的终极工具
在当今的高性能计算和多线程应用中,性能优化和问题诊断是至关重要的。JProfiler for Mac 是一个强大的性能分析工具,旨在帮助开发者更好地理解其应用程序的运行情况,提升性能并快速诊断问题。 JProfiler for Mac 的主要特点包括:…...
力扣202-快乐数
快乐数 题目链接 解题思路: 两个指针,一快一慢,如果相遇,就会生成环如果环内元素为1,那么就可以返回 class Solution { public:int get(int n){int res 0;while(n){res (n%10) * (n%10);n / 10;}return res;}bool isHappy(int …...
牛客寒假训练营H题
思路:找出所有m的子集,加到价值中,找出最大价值即可。 代码: void solve(){int n, m;cin >> n >> m;vector<pii>a(n 1);for(int i 1;i < n;i )cin >> a[i].first >> a[i].second;int ans 0…...
ubuntu22.04@laptop 常用基础环境安装
ubuntu22.04laptop 常用基础环境安装 1. 源由2. 步骤2.1 安装ubuntu22.04 LTS系统2.2 必备软件安装2.3 基本远程环境2.3.1 远程ssh登录2.3.2 samba局域网2.3.3 VNC远程登录 2.4 开发环境安装 3. 总结 1. 源由 应朋友要求,整理下一个个人常用的工作笔记本常用开发环…...
Linux第41步_移植ST公司uboot的第2步_修改网络驱动_USB OTG设备树_LCD驱动_以及编译和烧写测试
移植ST公司uboot的第1步,创建配置文件、设备树、修改电源管理和sdmmc节点后,还需要进一部修改,如:网络驱动、USB OTG设备树、LCD驱动,以及编译和烧写测试。 一、在虚拟机中,使用VSCode打开my_uboot工作区 …...
瑞芯微1808模型转换(onnx到rknn)环境配置过程
瑞芯微1808模型转换(onnx → \to →rknn)环境配置 阅读本解决方案前,请读者确保已经根据官方的相关教程【rknn_model_zoo/common/rknn_converter at v1.5.0 airockchip/rknn_model_zoo (github.com)】完成其他配置文件的修改,以…...
测试ASP.NET Core项目调用EasyCaching的基本用法(InMemory)
EasyCaching属于开源缓存库,支持基本缓存方式及高级缓存用法,提高用户操作缓存的效率。EasyCaching支持的缓存方式包括以下类型,本文学习最基础的InMemory方式的基本用法。 EasyCaching.InMemory包属于基于内存的缓存库,使用的…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
