微软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

 
时间: 2024-10-08 09:29:38

微软connect教程系列—EntityFramework7(三)的相关文章

微软Connect教程系列—VS2015集成新潮工具(四)

本课程来源与微软connect视频教程,Modern Web Tooling in Visual Studio 2015 本课程主要讲下当下流行的前端工具 bower和grunt 首先简单介绍下这俩货是干什么,然后再讲下在vs2015中怎么用 一.bower和grunt介绍 bower是twitter开源的一款web包(如bootstrap.jquery)管理,依托github上越来越多的开源web(html+css+js)项目,bower只需要github项目加一个配置文件就可以使用bower

微软Connect教程系列--自动生成增删改查页面工具介绍(二)

本章课程描述了vs2015的三个特点,其中主要将描述在vs2015下面,使用命令自动生成增删改查界面,具体如下: 1.web.config文件不在存在,用config.json替代,以适应支撑vs的插件化. 即config.json可以在项目中不存在,你可以用xml文件或其他方式创建数据库连接. 2.获取nuget包更便捷 打开project.json,在dependencies节点输入“Newtonsoft.json”,并选择好相应版本,保存后,vs的引用就会自动从nuget上下载newton

PowerDesigner教程系列(三)概念数据模型

目标:本文主要介绍属性的标准检查约束.如何定义属性的附加检查. 一.定义属性的标准检查约束标准检查约束是一组确保属性有效的表达式.在实体属性的特性窗口,打开如图所示的检查选项卡. 在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下 参数 说明 Minimum 属性可接受的最小数 Maximum  属性可接受的最大数 Default 属性不赋值时,系统提供的默认值 Unit 单位,如公里.吨.元 Format 属性的数据显示格式 Lowercase 属性的赋值全部变为小写字母 U

Connect教程系列--响应式布局(一)

微软终于开源了,最近在第九频道(Event-Visual Studio)下面出来一系列关于vs2015的视频,介绍vs2015以及.NET5.0的新特性等,现针对其讲解的.NET和ASP.NET,进行介绍. 本篇课程主要是为了介绍vs2015开发响应式web更具便捷性,通过借助bootstrap,开发出适应平板.手机.PC等各种屏幕的漂亮页面.同时还介绍了w3c新引入的picture标签,以及CSS Media Queries. 1.bootstrap 通过使用bootstrap,构建如下一个界

MongoDB基础教程系列--第三篇 MongoDB基本操作(二)

1.集合操作 1.1.创建集合 MongoDB 用 db.createCollection(name, options) 方法创建集合. 格式 db.createCollection(name, options) 其中,name 是集合名称,是一个字符串:options 是可选项,是一个文档,指定内存大小和索引等选项,具体参数说明如下表: 字段 类型 说明 capped 布尔         (可选)如果为 true,表示为固定集合.固定集合是指具有固定存储空间的集合.当该值为 true 时,必

Cocos Creator | 飞刀大乱斗开发教程系列(三)

预览效果 ? 具体内容 ■ 这一期,主要讲解游戏过程中,通过触摸滑动,控制人物的运动方向,以及游戏过程中,人物运动区域的控制.如下图,人物通过滑动控制运动方向,即是往哪个方向滑动,人物就往哪个方向移动.人物只限定在下图蓝色边界内运动. 边界的实现 ■ 游戏运动区域使用一张背景图,精灵修改成 TILED 模式,根据需要,可以修改背景的大小,改变整个游戏的区域,边界使用一张边界纹理,同样使用 TILED 模式,进行翻转.修改大小.调整位置,以达到上述界面效果. ■ 所有玩家的人物,都放到背景下的一个

PowerDesigner教程系列

目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2)容易为人所理解3)便于计算机实现 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充.它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计. 通 常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界.换

MongoDB基础教程系列--未完待续

最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作为目录篇,方便阅读,有问题大家一块交流哈.多谢大家关注,转载请注明出处,谢谢! MongoDB基础教程系列--第一篇 进入MongoDB世界 MongoDB基础教程系列--第二篇 MongoDB基本操作(一) MongoDB基础教程系列--第三篇 MongoDB基本操作(二) MongoDB基础教程

智能合约语言 Solidity 教程系列3 - 函数类型

Solidity 教程系列第三篇 - Solidity 函数类型介绍.Solidity 系列完整的文章列表请查看分类-Solidity. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity 官方文档(当前最新版本:0.4.20)进行翻译,后半部分函数可见性( public, external, internal, privite )深度分析. 函数类型(Function T