1. 建立一个library 命名为eStudentDomain
2. 右键reference文件夹,打开nuget, 安装entity framework
3. 添加三个文件夹:
Contact : 主要放与下层通信的接口
Domain Model:主要放逻辑实体
Entity : 仅用于数据表对应的实体
相关代码:
public interface IStudentContext { IQueryable<Student> StudentList { get; } IQueryable<StudentClass> StudentClasseList { get; } } public class eStudentDbContext :DbContext,IStudentContext { public eStudentDbContext() : base("DefaultConnection") { } /// <summary> /// Remember Here MUST be property!!! /// </summary> public DbSet<Student> Students { get; set; } public DbSet<StudentClass> StudentClasses { get; set; } public IQueryable<Student> StudentList { get { return Students; }} public IQueryable<StudentClass> StudentClasseList { get { returnStudentClasses; } } } public class Student { public int Id { get; set; } public string Name { get; set; } public int ClassId { get; set; } public DateTime JoinDate { get; set; } public DateTime GraduateDate { get; set; } } public class StudentClass { public int Id { get; set; } public string Name { get; set; } public List<Student> Students { get;set; } }
接下来,打开migration 。
在此之前,做以下验证:
1. DbContext类的构造函数,传递了连接字符串:
2. Config文件里,连接字符串名称和DbContext配置的一致:
Domain项目的链接字符串可以不设在App.Config中,和Web Application 共用一个,配置在Web.Config里
然后,打开package managerconsole(就在output旁边) :
会发现,执行完毕自动生成了Migrations文件夹和Configuration.cs 文件,
打开这个配置文件,记得 Set Automatic MigrationsEnable 为 true (默认为false),可以在seed里面写一些初始化数据库的代码,每次同步数据库都会执行seed。示例,我添加了三个班级。
最后,同步entity 实体和Seed中的逻辑,到数据库
到db看一看:
我们添加的三个班级:
好了,本节主要完成:安装entity framework 包,打开数据同步,完成同步启动执行逻辑,完成Domain层的逻辑实体,以及把相应的entity结构同步到db。
下一节,我们介绍如何用做好的domain和同步好的db完成MVC应用。