记录一次ef code first的学习记录
最近想做一套自己的框架,正在寻找合适的ORM,之前参照力软(很早之前的版本了)的底层代码,做了一套自己的增删改查,
但是使用起来总觉得缺了点什么?
所以决心找一个成熟的ORM框架,学习搭建,发现一下自己的不足
对了Nhibernate,Entity Framework以及SqlSugar等轻量级的框架,最后选择了Entity Framework(毕竟微软大厂,跟着大厂走)
1,首先新建一个项目,winform,mvc,控制台都可以,新建以后使用nuget按照entityframework,我目前装的是6.2的版本
2,创建model、数据库上下文类、
base("name=MyStrConn")是定义在webconfig中的数据库链接
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { public enum SexType { Male, Female } public class Person { [Key] public string PersonId { get; set; } //姓名 public string Name { get; set; } //性别 public SexType Sex { get; set; } //年龄 public int Age { get; set; } public Person(string personId, string name, SexType sex, int age) { PersonId = personId; Name = name; Sex = sex; Age = age; } } }
using System.Data.Entity; namespace ConsoleApp1 { public class MyDbContext : DbContext { public MyDbContext() : base("name=MyStrConn") { } public DbSetPersons { get; set; } } } }
3.在程序包管理控制台中运行如下命令(运行前先编译下项目)
Enable-Migrations 表是启用数据库更改
Add-Migration InitialCreate 将更改提交到集合
Update-Database -Verbose 将更改同步到数据库表结构
4.这样数据库就根据我们建立的model创建了一个数据库和表Persons
5.插入一条数据到数据库表
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { using (var db = new MyDbContext()) { Person person = new Person("1001", "张三", SexType.Female, 26); db.Persons.Add(person); Student stu = new Student("001", "软件工程", "蓝翔", "1000", "XXX", SexType.Female, 25); db.Persons.Add(stu); db.SaveChanges(); Console.WriteLine("Success"); } Console.ReadLine(); } } }