微软connect教程系列—EntityFramework7(三)
随着Asp.NET5的开源,以及跨平台,ORM框架EF7也与时俱进,支持asp.net core,也支持关系型数据库和非关系型数据库,以及在linux和mac上跨平台使用。
下面演示的即通过使用EF7 操作sqllite数据库
1、用vs2015新建winform项目,打开nuget,下载安装EntityFramework.SQLite
2、新建Game实体,代码如下
public class Game
{
[System.ComponentModel.DataAnnotations.Key]
public string Id { get; set; }
public int Duration { get; set; }
public int Clicks { get; set; }
public double ClickPerSecond { get; set; }
public DateTime Played { get; set; }
}
3、新建上下文GameContext
在下面创建数据库中可以发现,使用sqllite数据库变得非常简单,只需option. UseSQLite即可。
public class GameContext :DbContext
{
public DbSet<Game> Games { get; set; }
/// <summary>
/// 配置创建数据库
/// </summary>
/// <param name="options"></param>
protected override void OnConfiguring(DbContextOptions options)
{
///只需使用sqllite即可
options.UseSQLite("Filename=game3.db");
}
}
4、程序初始化时创建数据库文件
如果数据库已经存在,则不会重复创建
public Form1()
{
InitializeComponent();
//创建数据库
using (var db = new GameContext())
{
//如果创建了,则不会重新创建
bool flag = db.Database.EnsureCreated();
Console.WriteLine(flag);
}
ReadData();
}
5、生成数据,通过点击加入数据
private static List<Game> _Games = new List<Game>();
private static int nums=0;
private void BtnOk_Click(object sender, EventArgs e)
{
nums = nums + 1;
while (nums > new Random().Next(3, 7))
{
GameService.RecordGame(3, nums);
nums = 0;
lblInfo.Text = "前三名成绩";
ReadData();
}
}
6、程序截图

总体来说,EF7集成了更多数据库支持,更方便的开发。不过codefirst时,enable-migratons不能再控制台使用,这个还得再排查原因。
源码已经放到git上,地址为:https://github.com/flowbywind/Winform/tree/master/ClickGame
微软connect教程系列—EntityFramework7(三)的更多相关文章
- 微软Connect教程系列—VS2015集成新潮工具(四)
本课程来源与微软connect视频教程,Modern Web Tooling in Visual Studio 2015 本课程主要讲下当下流行的前端工具 bower和grunt 首先简单介绍下这俩货 ...
- 微软Connect教程系列--自动生成增删改查页面工具介绍(二)
本章课程描述了vs2015的三个特点,其中主要将描述在vs2015下面,使用命令自动生成增删改查界面,具体如下: 1.web.config文件不在存在,用config.json替代,以适应支撑vs的插 ...
- 「软件测试实战教程系列(三)」弃繁就简,接口测试神器Postman|收藏版
软件测试实战教程系列(三)弃繁就简,接口测试神器Postman|收藏版 Postman主要帮我们干了三件事: 1.把相关集合放到一个集合当中方便管理. 2.对指定接口发送请求. 3.断言 下面我们使用 ...
- 缓冲区溢出实战教程系列(三):利用OllyDbg了解程序运行机制
想要进行缓冲区溢出的分析与利用,当然就要懂得程序运行的机制.今天我们就用动态分析神器ollydbg来了解一下在windows下程序是如何运行的. 戳这里看之前发布的文章: 缓冲区溢出实战教程系列(一) ...
- Connect教程系列--响应式布局(一)
微软终于跨平台了,最近在第九频道(Event-Visual Studio)下面出来一系列关于vs2015的视频,介绍vs2015以及.NET5.0的新特性等,现针对其讲解的.NET和ASP.NET,进 ...
- 【zabbix教程系列】三、zabbix 3.4 在centos 7 上安装详细步骤
一.环境准备 [root@ltt01 ~]# ip a : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen ...
- MongoDB基础教程系列--第三篇 MongoDB基本操作(二)
1.集合操作 1.1.创建集合 MongoDB 用 db.createCollection(name, options) 方法创建集合. 格式 db.createCollection(name, op ...
- PowerDesigner教程系列(三)概念数据模型
目标: 本文主要介绍属性的标准检查约束.如何定义属性的附加检查. 一.定义属性的标准检查约束 标准检查约束是一组确保属性有效的表达式.在实体属性的特性窗口,打开如图所示的检查选项卡. 在这个选项卡可以 ...
- Cocos Creator | 飞刀大乱斗开发教程系列(三)
预览效果 具体内容 ■ 这一期,主要讲解游戏过程中,通过触摸滑动,控制人物的运动方向,以及游戏过程中,人物运动区域的控制.如下图,人物通过滑动控制运动方向,即是往哪个方向滑动,人物就往哪个方向移动 ...
随机推荐
- jetty服务器启动方法总结【备用】
1. 使用Java命令启动 java -jar start.jar ctrl + c 关闭 终端窗口一直存在 2. 使用Java命令启动2 java -jar start.jar & 启动成功 ...
- transition-delay
https://developer.mozilla.org/en-US/docs/Web/CSS/transition-delay
- 第八章 springboot + mybatis + 多数据源(转载)
本篇博客转发自:http://www.cnblogs.com/java-zhao/p/5413845.html 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源. 代码结构 ...
- 线段树初步&&lazy标记
线段树 一.概述: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a, ...
- 虚拟机上安装ArchLinux笔记
安装前的自白: 想使用ArchLinux,就直接在虚拟机上先装一个玩起来先.虚拟机使用的是Vmware,下载免费的个人版本就可以了. Arch Linux的版本为2016.4.1 内核为4.4.5 在 ...
- Android自定义View的实现方法,带你一步步深入了解View(四)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回 ...
- Echarts给柱状图每一条顶部都添加数值
在 series中添加 itemStyle : { normal: {label : {show: true}}}, 不过目测要把markPoint等去掉,不然最大值和最小值会和label冲突,应该有 ...
- Document-对象属性和常用的对象方法
Document-对象属性和常用的对象方法 对象属性 document.title //设置文档标题等价于HTML的title标签 document ...
- C语言的选择和循环上机题目(部分)
/*(1)某市不同车牌的出租车3公里的起步价和计费分别为:夏利7元/公里,3公里以外2.1元/公里:富康8元/公里,3公里以外2.4元/公里:桑塔纳9元,3公里以外2.7元/公里.编程:从键盘输入乘车 ...
- mac下svn问题——“.a”(静态库)文件无法上传解决
mac下svn问题——“.a”(静态库)文件无法上传解决 “.a”(静态库)文件无法上传(svn工具:Versions) 网上查询了一下,说是Xcode自带的svn和Versi ...