記錄一次ef code first的學習記錄web
最近想作一套本身的框架,正在尋找合適的ORM,以前參照力軟(很早以前的版本了)的底層代碼,作了一套本身的增刪改查,數據庫
可是使用起來總以爲缺了點什麼?mvc
因此決心找一個成熟的ORM框架,學習搭建,發現一下本身的不足框架
對了Nhibernate,Entity Framework以及SqlSugar等輕量級的框架,最後選擇了Entity Framework(畢竟微軟大廠,跟着大廠走)學習
1,首先新建一個項目,winform,mvc,控制檯均可以,新建之後使用nuget按照entityframework,我目前裝的是6.2的版本spa
2,建立model、數據庫上下文類、hibernate
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 DbSet<Person> Persons { get; set; } } } }
3.在程序包管理控制檯中運行以下命令(運行前先編譯下項目)code
Enable-Migrations 表是啓用數據庫更改orm
Add-Migration InitialCreate 將更改提交到集合blog
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(); } } }