博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一步一步学EF系列3【升级篇 实体与数据库的映射】
阅读量:4346 次
发布时间:2019-06-07

本文共 1411 字,大约阅读时间需要 4 分钟。

 之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了。基本的增删改查也都有了。但是作为学习显然是不够的。通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之前的三篇总共加起来代码也就几十行哪里繁琐了。呵呵,是不是觉得EF很强大。但是其实按照之前的写法的话是比较繁琐的,为什么呢?这就是本文的重点 接着往下看!!!

      先看一下之前的配置类

      

      回顾我们的范例是只有两张表,然后需要配置映射关系的时候在 DbContext,的OnModelCreating进行配置。但是如果有几十张而且关系比较复杂的表,如果到放到这个OnModelCreating里面去写的话会不会觉得太乱没有条理性,甚至关系都已经分不清了。

      那接着就要想办法,怎么能让每个表的关系就只在一个实体关系配置类进行配置。

 

大家也可以加入QQ群进行交流(435498053)。

作者:STONE刘先生 出处:

本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。

如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!

      具体的内容往下看:


      上面的内容不知道你看懂了没有,或者说我说的不清楚,解决办法就是 我们可以针对每个实体来创建一个配置类或者公用的配置类来完成关系映射的设置。那我们就开始做吧。

一、在Model下面新建了一个配置文件夹

二、同时针对之前写的两个实体新建了一个配置类

三、核心代码来了

     以上两步动动鼠标就可以搞定。那具体的代码就在这里了。我们先来看看用户信息的映射类。

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

    简单吧! 我们把之前OnModelCreating配置的东西就可以移到每个对应的实体中,这个类核心的地方就在于引用了EntityTypeConfiguration,那为什么要引用它呢?

    下面的这句是我们第二篇里面写的代码,你鼠标放到HasKey查看引用。

modelBuilder.Entity
().HasKey(m => m.BlogUserId);

    调到下面这个

    现在知道为什么要引用EntityTypeConfiguration吧! 不引用的话 那我们在构造方法里面的配置就没法写了。

四、最后一步

修改DbContext里面的OnModelCreating方法 注释掉之前的代码。每个类改成一行代码实现。

  

五、完成

运行你的代码 是不是也是出现了之前的正确页面。

 

大家如果有什么不懂的可以留言,也欢迎大家指导通过进步。

大家也可以加入QQ群进行交流(435498053)。

作者:STONE刘先生 出处:

转载于:https://www.cnblogs.com/sylone/p/6097196.html

你可能感兴趣的文章
main(argc,argv[])
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>
接口测试用例
查看>>
Sybase IQ导出文件的几种方式
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>
POJ 3267 The Cow Lexicon(动态规划)
查看>>
设计原理+设计模式
查看>>
tomcat 7服务器跨域问题解决
查看>>
前台实现ajax 需注意的地方
查看>>
Jenkins安装配置
查看>>
个人工作总结05(第二阶段)
查看>>
深入理解Java虚拟机&运行时数据区
查看>>
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>