Entity Framework 6.0 入门系列 - Code First

简介

Entity Framework(以下简称EF) 是微软推出的一个ORM框架,按照微软一贯的传统,需要等到3.0版本,软件才会好用,我第一次看到EF的时候,当时的EF只支持从数据库生成复杂无比的代码,所以一直没有将EF作为生产工具使用。
目前的EF支持三种开发模式

  • 数据库优先(Database First)**
    传统的开发模式,先设计数据库,再从数据库生成对应的数据存取代码。
  • 模型优先(Model First)
    使用可视化模型设计工具,构建数据模型。
  • 代码优先(Code First)
    这是EF拥抱DDD开发,支持POCO(Plain Old CLR Object)类型的开发模式。
    也将是我们接下来要介绍的开发模式。

工作环境

Visual Studio 2013/2015

任务描述

使用Microsoft Entity Framework 6.0(以下简称EF) Code First编程模式,制作一个可运行的极简代码项目。

  • 订单数据表 SaleOrder
  • 基本的CRUD测试

准备工作

  1. 创建一个控制台应用项目 EFDemo.T1
  2. 使用Nuget Package Manager添加引用
    2.1 右键解决方案,选择菜单"Enable Nuget Package Restore"
    如图提示,表示Nuget已成功启用。
Entity Framework 6.0 入门系列 - Code First_第1张图片

2.2 管理解决方案的Nuget程序包
打开Nuget管理工具,联机栏目中,我们看到Entity Framework 排在第二位,点击“安装”即可。如果你没有看到Entity Framework,可以在右侧“搜索联机(Ctrl+E)”处键入"Entity Framework"进行搜索。


Entity Framework 6.0 入门系列 - Code First_第2张图片

书写代码

  1. 创建一个实体类SaleOrder
Public Class SaleOrder
      Public Property Id() As Integer
      Public Property Name() As String
      Public Property Amount As Nullable(Of Decimal)
End Class
  1. 创建数据库上下文 DBContext
Public Class DemoContext Inherits DbContext
      Public Property SaleOrder As DbSet(Of SaleOrder)
End Class
  1. CRUD 代码
Sub Main()
        Console.WriteLine("*** Entity Framework 演示程序 ***")

        Using db = New DemoContext
            'Create
            Console.Write("新增十行记录。")
            Dim rnd As New Random
            For I = 1 To 10
                Dim newEntity As New SaleOrder With {.Id = rnd.Next, .Name = "Name" & .Id, .Amount = rnd.NextDouble * 1000}
                db.SaleOrder.Add(newEntity)
            Next
            db.SaveChanges()

            'Read
            Console.WriteLine("读取一行记录。")
            Dim row = db.SaleOrder.OrderBy(Function(c) c.Id).FirstOrDefault

            'Update
            Console.WriteLine("修改/更新一行记录。")
            row.Name = row.Name & " Update at: " & Now

            Console.WriteLine(String.Format("ID: {0}", row.Id))
            Console.WriteLine(String.Format("Name: {0}", row.Name))
            Console.WriteLine(String.Format("Amount: {0}", row.Amount))
            db.SaveChanges()

            'Delete

            Console.WriteLine("删除一行记录。")
            Console.WriteLine(String.Format("删除前共有数据记录{0}行。", db.SaleOrder.Count))
            Dim q = db.SaleOrder.OrderBy(Function(c) c.Id).Skip(3).FirstOrDefault

            db.SaleOrder.Remove(q)
            db.SaveChanges()
            Console.WriteLine(String.Format("删除后共有数据记录{0}行。", db.SaleOrder.Count))
        End Using

        Console.WriteLine("按任意键退出。")
        Console.ReadKey()
    End Sub

总结

实体:三个字段,五行代码
数据: 一个数据表,三行代码
这就是EF可以开始工作的全部代码。
考虑到需要一些提示,还有演示新增、查询、修改、删除功能的需要,Main里面的代码稍微多了一点点。
现在可以按下“F5”,运行演示程序,出现如下图结果。

Entity Framework 6.0 入门系列 - Code First_第3张图片

藏在代码后面,EF帮助我们做了哪一些工作,我们将在下一篇文章中阐述。

`

你可能感兴趣的:(Entity Framework 6.0 入门系列 - Code First)