在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
近期做了MVC+EF的项目,现在项目完结了,抽个时间写个小DOM总结一下,顺便加深理解。 一、新建MVC项目,结构是这样的 App_Data:存放数据库文件。 App_Start:存放一些配置逻辑文件,常用的是路由配置。 Content:一般用来存放CSS文件。 Controllers:一般用来存放控制器。 fonts:存放字体文件。 Models:存放数据模型。 Scripts:存放js文件。 Views:存放视图,也就是页面。 自动生成的mvc结构会产生示例文件,开发之前可以删除,没什么用。 二、新建数据模型(Models) 一般情况下我会建立一个基类,有些字段基本每个表都会有,建立一个基类比较方便,直接继承即可。新建基类EntityBase 将Id设置为主键,并且为自动增长。 public class EntityBase { public EntityBase() { this.CreateTime = DateTime.Now; this.ModifyTime = this.CreateTime;/*创建时ModifyTime = CreateTime*/ } [Key, Column(Order = 0), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime CreateTime { get; set; } /// <summary> /// 最近一次修改时间 /// <para>第一次创建时==CreateTime</para> /// </summary> public DateTime ModifyTime { get; set; } /// <summary> /// 本条记录是否被删除 /// </summary> public bool IsDel { get; set; } } 部门管理表,继承基类 public class Department : EntityBase { public Department() { IsShow = true; } /// <summary> /// 部门名称 /// </summary> public string Name { get; set; } /// <summary> /// 介绍 /// </summary> public string Introduce { get; set; } /// <summary> /// 排序值 /// </summary> public int OrderId { get; set; } /// <summary> /// 是否显示 /// </summary> public bool IsShow { get; set; } } 招聘管理表 public class Recruit : EntityBase { public Recruit() { IsShow = true; } /// <summary> /// 职位名称 /// </summary> public string Name { get; set; } /// <summary> /// 职位描述 /// </summary> public string Describe { get; set; } /// <summary> /// 开始时间 /// </summary> public DateTime StarTime { get; set; } /// <summary> /// 结束时间 /// </summary> public DateTime? EndTime { get; set; } /// <summary> /// 招聘人数 /// </summary> public string Number { get; set; } /// <summary> /// 工作经验 /// </summary> public string Experience { get; set; } /// <summary> /// 外链接 /// </summary> public string ExternaLink { get; set; } /// <summary> /// 页面类型 /// </summary> public bool IsPage { get; set; } /// <summary> /// 排序值 /// </summary> public int OrderId { get; set; } /// <summary> /// 是否显示 /// </summary> public bool IsShow { get; set; } /// <summary> /// 分类ID /// </summary> public int DepartmentId { get; set; } /// <summary> /// 关联的分类 /// </summary> public virtual Department Department { get; set; } } 简历管理 public class Resume : EntityBase { public Resume() { IsShow = true; } /// <summary> /// 姓名 /// </summary> public string Name { get; set; } /// <summary> /// 性别 /// </summary> public string Sex { get; set; } /// <summary> /// 联系方式 /// </summary> public string ContactInfo { get; set; } /// <summary> /// 应聘职位 /// </summary> public string Position { get; set; } /// <summary> /// 描述 /// </summary> public string Describe { get; set; } /// <summary> /// 排序值 /// </summary> public int OrderId { get; set; } /// <summary> /// 是否显示 /// </summary> public bool IsShow { get; set; } } 二、建立数据库上下文,添加数据表 public class PracticeContext : DbContext { public PracticeContext() : base("name=PracticeContext") { base.Configuration.LazyLoadingEnabled = false; } 三、配置文件中添加连接数据库字符串,设置name和数据库上下文中的要一致。 <connectionStrings> <add name="PracticeContext" connectionString="Data Source=.;Initial Catalog=Website; User ID=sa;Password=123456;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/> </connectionStrings> 四、数据库迁移。工具-》NuGet包管理器=》程序包管理控制台 执行命令: 1、Enable-Migrations 会生成一个文件夹Migrations文件夹,里面存放数据库迁移产生的文件 2、Add-Migration Init_tabel 添加数据模型到数据库,只有写进数据库上下文中的表才会执行创建操作,这一步只是创建了执行的语句,并没有执行。 3、Update-Database 执行最新数据库迁移文件,即上条语句生成的执行语句。 4、只有首次执行数据迁移需要执行Enable-Migrations命令,之后再执行就不需要了。 5、查看数据库就会发现已经在数据库中生成了数据库。
|
请发表评论