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

      
    
    
  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/flowwind/p/4109408.html
Copyright © 2011-2022 走看看