Entity Framework学習記録

7588 ワード

ef code firstの学習記録を1回記録する
最近は自分のフレームワークを作りたいと思って、適当なORMを探しています.
でも使うとなんだか何か足りない?
だから1つの成熟したORMのフレームワークを探すことを决心して、学习して构筑して、自分の不足を発见します
ところで、Nhibernate、Entity Framework、SqlSugarなどの軽量級のフレームワークは、最後にEntity Framework(結局マイクロソフトの大工場、大工場について行く)を選びました
1,まず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 DbSet Persons { get; set; }
        }
    }
}

3.パッケージ管理コンソールで次のコマンドを実行します(実行前にプロジェクトをコンパイルしてください)
Enable-Migrationsテーブルは、データベースの変更を有効にします.
Add-Migration InitialCreate変更をコレクションにコミット
Update-Database-Verboseデータベーステーブル構造への変更の同期
 
4.これにより、データベースは作成したモデルに基づいてデータベースとテーブル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();
        }
    }
}