Entity Framework學習記錄

記錄一次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();
        }
    }
}
相關文章
相關標籤/搜索