本篇博客对应视频讲解

回顾

上一篇教程我们讲了XML与JSON的序列化问题,我们可以看到序列化实际上也是不同形式的转换,我们通常要以字节流的形式做中转。同时我们也可以看到,对于序列化这种常见的需求,我们可以使用第三方类库更快更好的实现需求。同时也看到了定义式的类,通过C#中特性,可以很方便的定义成员相关的特性。

数据库

数据库是什么这里不多说了,简单说就是组织存储数据用的。我们无时无刻不在获取或处理数据。数据库在各类形式的软件中都发挥重要的作用。 我们今天通过Visual Studio IDE带大家了解一下如何从本地Sql server中查询数据。

实体框架

官方提供了一个实体框架,叫做EntityFramework Core,方便我们在进行对象映射,即把数据库的结构映射到对象(类的表现形式)。然后我们在程序中,仍然是对类的对象进行操作。这样我们就不需要关心数据库是什么样的存储结构了。

安装本地数据库

VIsualStudio Install 安装 Sql Server支持.

使用EntityFramework Core

  1. 安装官方包 Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 使用包管理器。 或者使用dotnet命令: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet

  2. 创建Context类,继承DbContext 覆写OnConfiguring方法,填写连接字符串.. 视图->sql server 对象管理器,连接本地数据库,创建新表。 通过属性,查看连接字符串。 创建实体类,添加到Context。

  3. 使用命令工具,创建数据库 在VS中打开工具->nuget包管理器->nuget包管理控制台 Add-Migrations 生成创建修改数据库的代码, Update-Database 执行代码生成改动到数据库.

  4. 操作数据库 我们来通过示例来看一下我们如何进行数据库的操作。这和我们使用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));
}

最新文章

  1. angular学习笔记(二十九)-$q服务
  2. jquery中链式调用原理
  3. jq 版的tab切换
  4. 多选按钮(CheckBox)
  5. day-1
  6. JavaScript原型链与继承
  7. 性能优化工具---sar
  8. 初步了解asp.net运行机制
  9. vscode-Live Server的使用心得
  10. [转帖]Linux命令中特殊符号
  11. Github + Hexo 搭建个人博客
  12. EasyUI Tree节点拖动到指定容器
  13. jquery选择器最后一个,倒数第二个元素
  14. L321 How Technology Is Revolutionizing Health Care
  15. I Hate It---hdu1754线段树
  16. 本地git仓库常用操作
  17. Invalid bound statement (not found): com.example.managerdemo.mapper.SingleTableMapper.selectAllValuesByConditionsNoPage
  18. PHP 获取中英文混合字符串长度
  19. ubuntu :安装好了搜狗输入法但是没法用
  20. NSTimer类的使用

热门文章

  1. 动态调用WebService方法
  2. 1. Spring boot 之热部署
  3. 【SQL模板】四.插入/更新 列模板TSQL
  4. Ui设计流行趋势,对颜色的探讨
  5. spring mvc , spring data jpa 知识点
  6. part1:6-Linux文本编辑器vi
  7. bitset相关
  8. 2018.09.19 atcoder Snuke's Subway Trip(最短路)
  9. Netty学习第六节实例一步学习
  10. public class 和class 的区别