一步一步学EF系列3【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了。基本的增删改查也都有了。但是作为学习显然是不够的。通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之前的三篇总共加起来代码也就几十行哪里繁琐了。呵呵,是不是觉得EF很强大。但是其实按照之前的写法的话是比较繁琐的,为什么呢?这就是本文的重点 接着往下看!!!
先看一下之前的配置类
回顾我们的范例是只有两张表,然后需要配置映射关系的时候在 DbContext,的OnModelCreating进行配置。但是如果有几十张而且关系比较复杂的表,如果到放到这个OnModelCreating里面去写的话会不会觉得太乱没有条理性,甚至关系都已经分不清了。
那接着就要想办法,怎么能让每个表的关系就只在一个实体关系配置类进行配置。
大家也可以加入QQ群进行交流(435498053)。
作者:STONE刘先生 出处:http://www.cnblogs.com/liupeng/
本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
具体的内容往下看:
上面的内容不知道你看懂了没有,或者说我说的不清楚,解决办法就是 我们可以针对每个实体来创建一个配置类或者公用的配置类来完成关系映射的设置。那我们就开始做吧。
一、在Model下面新建了一个配置文件夹
二、同时针对之前写的两个实体新建了一个配置类
三、核心代码来了
以上两步动动鼠标就可以搞定。那具体的代码就在这里了。我们先来看看用户信息的映射类。

/// <summary>
/// 博客用户信息映射类
/// </summary>
public class BlogUserConfiguration : EntityTypeConfiguration<BlogUser>
{
public BlogUserConfiguration()
{
//设置主键
HasKey(m => m.BlogUserId);
}
}

简单吧! 我们把之前OnModelCreating配置的东西就可以移到每个对应的实体中,这个类核心的地方就在于引用了EntityTypeConfiguration,那为什么要引用它呢?
下面的这句是我们第二篇里面写的代码,你鼠标放到HasKey查看引用。
modelBuilder.Entity<BlogUser>().HasKey(m => m.BlogUserId);
调到下面这个
现在知道为什么要引用EntityTypeConfiguration吧! 不引用的话 那我们在构造方法里面的配置就没法写了。
四、最后一步
修改DbContext里面的OnModelCreating方法 注释掉之前的代码。每个类改成一行代码实现。
五、完成
运行你的代码 是不是也是出现了之前的正确页面。
大家如果有什么不懂的可以留言,也欢迎大家指导通过进步。
大家也可以加入QQ群进行交流(435498053)。
作者:STONE刘先生 出处:http://www.cnblogs.com/liupeng/
一步一步学EF系列3【升级篇 实体与数据库的映射】的更多相关文章
- 一步一步学EF系列【4、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 一步一步学EF系列【5、升级篇 实体与数据库的映射】live writer真坑,第4次补发
前言 之前的几篇文章,被推荐到首页后,又被博客园下了,原因内容太少,那我要写多点呢,还是就按照这种频率进行写呢?本身我的意图这个系列就是想已最简单最容易理解的方式进行,每篇内容也不要太多,这样初学者容 ...
- 一步一步学EF系列四【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...
- 一步一步学EF系列【6、IOC 之AutoFac】
前言 之前的前5篇作为EF方面的基础篇,后面我们将使用MVC+EF 并且使用IOC ,Repository,UnitOfWork,DbContext来整体来学习.因为后面要用到IOC,所以本篇先单独先 ...
- 一步一步学EF系列 【7、结合IOC ,Repository,UnitOfWork来完成框架的搭建】
前言 距离上一篇已经有段时间了,最近这段时间赶上新项目开发,一直没有时间来写.之前的几篇文章,主要把EF的基础都讲了一遍,这批文章就来个实战篇. 个人在学习过程中参考博客: Entity Framew ...
- 一步一步学EF系列一【最简单的一个实例】
整个文章我都会用最简单,最容易让人理解的方式给大家分享和共同学习.(由于live Writer不靠谱 又得补发一篇) 一.安装 Install-Package EntityFramework 二.简单 ...
- 一步一步学EF系列2【最简单的一个实例】
整个文章我都会用最简单,最容易让人理解的方式给大家分享和共同学习.(由于live Writer不靠谱 又得补发一篇) 一.安装 Install-Package EntityFramework 二.简单 ...
- 一步一步学EF系列三【数据迁移】
我们每篇的内容都不多,所以希望在学习的过程中最后能亲自敲一下代码 这样更有利于掌握. 我们现在接着上篇的例子,我们现在给随便的表增加一个字段 CreateTime 创建日期 运行一下 看看会怎么样 修 ...
- 一步一步学EF系列1【Fluent API的方式来处理实体与数据表之间的映射关系】
EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...
随机推荐
- Atom编辑器之加快React开发的插件汇总
汇总下比较实用的atom插件[偏react开发的]-- 博主发现这个还是比较全面的! atom-react-autocomplete–项目内,组件名及状态的自动补全 autocomplete-js- ...
- OBJECT-ORIENTED
- Tomcat7性能优化
目的 通过优化tomcat提高网站的并发能力. 服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有决定性影响. 优化配置 配置tomcat管理员账户 在conf/ tomcat-users ...
- 计算机网络课程优秀备考PPT之第七章应用层(七)
为了记录自己从2016.9~2017.1的<计算机网络>助教生涯,也为了及时梳理和整写笔记! 前期博客是, 计算机网络课程优秀备考PPT之第一章概述(一) 计算机网络课程优秀备考PPT之第 ...
- 【angular】angular如何让传递变量参数+ng-change的使用
HTML: <div class="form-group"> <label class="col-sm-2 control-label"> ...
- SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)
在产品表中,数据是具有一定层次结构的 1. 在Content相应的package下面右键点击Attribute View,新建Attribute View 填写相关信息,注意:我们所建的依然是标准视图 ...
- json_encode不编码中文字符的方式
json_encode($array,JSON_UNESCAPED_UNICODE);
- chrome下li标签onclick事件无效
//绑定事件 $(document).ready(function () { $("ul").children().click(function () { clickLi(this ...
- SweetTips: 快意灵动的Android提示库!
此文章是我在简书的文章,自行搬到博客园.简书地址:SweetTips: 快意灵动的Android提示库! 源码及所在DEMO已上传至GitHub:SweetTips,欢迎大家提Bug,喜欢的话记得St ...
- Nopi Excel导入
http://download.csdn.net/detail/diaodiaop/7611721 using System.Collections.Generic; using System.Dat ...