之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了。基本的增删改查也都有了。但是作为学习显然是不够的。通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之前的三篇总共加起来代码也就几十行哪里繁琐了。呵呵,是不是觉得EF很强大。但是其实按照之前的写法的话是比较繁琐的,为什么呢?这就是本文的重点 接着往下看!!!
先看一下之前的配置类
回顾我们的范例是只有两张表,然后需要配置映射关系的时候在 DbContext,的OnModelCreating进行配置。但是如果有几十张而且关系比较复杂的表,如果到放到这个OnModelCreating里面去写的话会不会觉得太乱没有条理性,甚至关系都已经分不清了。
那接着就要想办法,怎么能让每个表的关系就只在一个实体关系配置类进行配置。
具体的内容往下看
1、在Model下面新建了一个配置文件夹
2、同时针对之前写的两个实体新建了一个配置类
3、核心代码来了。
以上两步动动鼠标就可以搞定。那具体的代码就在这里了。我们先来看看用户信息的映射类。
/// <summary> /// 博客用户信息映射类 /// </summary> public class BlogUserConfiguration : EntityTypeConfiguration<BlogUser> { public BlogUserConfiguration() { //设置主键 HasKey(m => m.BlogUserId); } }
简单吧! 我们把之前OnModelCreating配置的东西就可以移到每个对应的实体中,这个类核心的地方就在于引用了EntityTypeConfiguration,那为什么要引用它呢?
下面的这句是我们第二篇里面写的代码,你鼠标放到HasKey查看引用。
modelBuilder.Entity<BlogUser>().HasKey(m => m.BlogUserId);
调到下面这个
现在知道为什么要引用EntityTypeConfiguration吧! 不引用的话 那我们在构造方法里面的配置就没法写了。
4、最后一步,修改DbContext里面的OnModelCreating方法 注释掉之前的代码。每个类改成一行代码实现。
5、完成,运行你的代码 是不是也是出现了之前的正确页面。
大家如果有什么不懂的可以留言,也欢迎大家指导通过进步。
原文:http://www.cnblogs.com/liupeng/p/4797367.html