11-使用EF操作数据库
本篇博客对应视频讲解
回顾
上一篇教程我们讲了XML与JSON的序列化问题,我们可以看到序列化实际上也是不同形式的转换,我们通常要以字节流的形式做中转。同时我们也可以看到,对于序列化这种常见的需求,我们可以使用第三方类库更快更好的实现需求。同时也看到了定义式的类,通过C#中特性,可以很方便的定义成员相关的特性。
数据库
数据库是什么这里不多说了,简单说就是组织存储数据用的。我们无时无刻不在获取或处理数据。数据库在各类形式的软件中都发挥重要的作用。 我们今天通过Visual Studio IDE带大家了解一下如何从本地Sql server中查询数据。
实体框架
官方提供了一个实体框架,叫做EntityFramework Core,方便我们在进行对象映射,即把数据库的结构映射到对象(类的表现形式)。然后我们在程序中,仍然是对类的对象进行操作。这样我们就不需要关心数据库是什么样的存储结构了。
安装本地数据库
VIsualStudio Install 安装 Sql Server支持.
使用EntityFramework Core
安装官方包 Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 使用包管理器。 或者使用dotnet命令: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet
创建Context类,继承DbContext 覆写OnConfiguring方法,填写连接字符串.. 视图->sql server 对象管理器,连接本地数据库,创建新表。 通过属性,查看连接字符串。 创建实体类,添加到Context。
使用命令工具,创建数据库 在VS中打开工具->nuget包管理器->nuget包管理控制台
Add-Migrations
生成创建修改数据库的代码,Update-Database
执行代码生成改动到数据库.操作数据库 我们来通过示例来看一下我们如何进行数据库的操作。这和我们使用Linq操作普通对象基本是一致的。
static MyContext _context = MyContext.GetContext(); static void Main(string[] args)
{
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Formatting = Newtonsoft.Json.Formatting.None,
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
}; //Add();
Select();
Console.WriteLine("完成");
Console.ReadLine();
} /// <summary>
/// 添加
/// </summary>
static void Add()
{
// 创建用户
var user = new User
{
Email = "abc@outlook.com",
Name = "NilTor",
Password = "123123"
};
// 添加数据
var blogs = new List<Blog>()
{
new Blog
{
Author = user,
Title = "博客",
Content = "内容"
},
new Blog
{
Author = user,
Title = "标题2",
Content = "博客内容2"
}
}; _context.Add(user);
_context.AddRange(blogs);
var re = _context.SaveChanges();
Console.WriteLine(re);
} /// <summary>
/// 查询
/// </summary>
static void Select()
{
var data = _context.User
.Include(m => m.Blogs)
.ToList(); Console.WriteLine(JsonConvert.SerializeObject(data));
}
11-使用EF操作数据库的更多相关文章
- EF操作数据库的步骤和一些简单操作语句
这里是写给我自己做记录的,不会写成一篇很好的博客,也不会置顶,如果有朋友看到了,而且觉得里面的内容不咋的,希望见谅哈! 关于这部分内容,这里推荐一篇总结的非常好的博客,如果你点击进来了,那么请略过下面 ...
- Asp.Net MVC 自定义的MVC框架(非EF操作数据库)
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...
- 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)
摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...
- EF 操作数据库中的表
1.VS创建项目(实现数据库的增删改查.并在dataGridView中展示) 增.改通过Button,删通过快捷菜单ContextMenuStrip控件(DateGridView控件的ContextM ...
- PHP学习笔记(11)PHP操作数据库
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 使用EF操作Mysql数据库中文变问号的解决方案
问题场景:使用Entity Framework 6.0 操作Mysql数据库,中文保存至数据库后全部变成问号.但是使用Mysql API却不会. 原因排查:首先想到的肯定是数据库编码问题,一次查询了表 ...
- .NET技术-2.0. 操作数据库-EF
.NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...
- 在MVC3中使用code first生成数据局库并操作数据库
1.建立Users和UserInfos两个实体类 对应的是数据库中的表 public class User { //类名+Id(User+Id)组成的字符串在数据库表中会设置该字段是主键且是按1的增量 ...
随机推荐
- Python反转
1切片 s="svdfbffdbdf" a=s[::-1] 2入栈出栈 入栈之后再出栈正好就是了 3reverse 这个函数是列表的....你要先把str转成list list-& ...
- python作业(第十一周)基于RabbitMQ rpc实现的主机管理
作业需求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hosts 192.168.3.55 10.4.3.4 task id: 453 ...
- Django的cookie学习
为什么要有cookie,因为http是无状态的,每次请求都是独立的,但是我们还需要保持状态,所以就有了cookie cookie就是保存在客户端浏览器上的键值对,别人可以利用他来做登陆 rep = r ...
- 二叉树的最大/小/平衡 深度 depth of binary tree
[抄题]: 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的距离. [思维问题]: [一句话思路]: 分合法的定义 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况 ...
- 用SQL2000还原bak文件
1.右击SQL Server 2000实例下的“数据库”文件夹.就是master等数据库上一级的那个图标.选择“所有任务”,“还原数据库” 2.在“还原为数据库”中填上你希望恢 复的数据库名字.这个名 ...
- 批量MD5命名文件
#coding=utf-8 import os import hashlib def GetFileMd5(filename): if not os.path.isfile(filename): pr ...
- expdp、impdp使用
expdp介绍 EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定 ...
- DLL另類劫持注入法
// Win32Project2.cpp : 定义 DLL 应用程序的导出函数. // //////////////////////////////////////////////////////// ...
- code4906 删数问题
题目: 键盘输入一个高精度的正整数n(<=240位), 去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数. 编程对给定的n和s,寻找一种方案,使得剩下的数最小. Simple Inp ...
- 品味性能之道<七>:索引基础
一.索引概述 索引(index),它是数据库必不可少的一部分.它其实很简单呐!很好理解. 索引好比如一本书的目录,一张地图,一个写字楼里挂在大堂墙上的公司名录,一个地铁站的出口指示 ...