zoukankan      html  css  js  c++  java
  • 微软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、程序截图

    image

    总体来说,EF7集成了更多数据库支持,更方便的开发。不过codefirst时,enable-migratons不能再控制台使用,这个还得再排查原因。

    源码已经放到git上,地址为:https://github.com/flowbywind/Winform/tree/master/ClickGame

      
    
    
  • 相关阅读:
    自我介绍
    软工第一次编程作业
    软件定义网络第一次作业
    软工个人总结
    实验 7: OpenDaylight 实验——Python 中的 REST API 调用
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发
    软工结对编程作业
    实验 4 : Open vSwitch 实验——Mininet 中使用 OVS 命令
    软件定义网络第三次作业
    软件定义网络第二次作业
  • 原文地址:https://www.cnblogs.com/flowwind/p/4109408.html
Copyright © 2011-2022 走看看