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();
        }
    }
}
相关文章
相关标签/搜索