数据库有依赖关系的数据表处理

(作者:郭鑫 撰写时间:2019年5月17号)

数据库的使用在开发中是必不可少的。很多程序员都是用了Power Designer建好表后再导进数据库的,但是如果一不小心把依赖关系一起导进了数据库那就会导致在编程时问题层出。有依赖关系的数据库放进VS的model时会有很多线连接着,就像如下的model一样。

数据库有依赖关系的数据表处理

       正常的是没有线连接着的,就像这个样子

数据库有依赖关系的数据表处理

      

发现这种情况如果不进行处理,继续使用的话,在查询的时候会接口异常,报一个500的错误。报错内容里会出现:序列化类型为什么什么的对象时检测到循环使用,里面会有你创建的一个表的名字,而且后面还带着一大串的字符。

数据库有依赖关系的数据表处理

这时你可以回到控制器进行断点,会发现查询到的数据不仅仅只有需要的数据,和这张表有直接关联的表格的数据条数都会查询出来。例如下面的,他把和他相关的客户表、车辆信息表、和部门表各个表里有多少条数据都查询了出来。这就会导致异常报错,从而查询不出数据。

数据库有依赖关系的数据表处理

解决办法:先在VS的model里的空白处右键选择根据模型生成数据库。

数据库有依赖关系的数据表处理

然后会弹出一个窗口,点击完成即可,之后在项目的Models文件夹多出一个文档。里面就是生成数据库表格需要的代码了。

数据库有依赖关系的数据表处理

 

文档里面除了标题,一共还有5个主题,从上往下分别是:删除现有外键约束、删除现有表、创建所有表、创建所有主键约束、创建所有外键约束;

内容大致如下:(中文全部是我加的注释,文档里是没有的)

 

上面的是标题内容

-- --------------------------------------------------

-- Dropping existing FOREIGN KEY constraints  删除现有外键约束

-- --------------------------------------------------

主题1

-- --------------------------------------------------

-- Dropping existing tables 删除现有表

-- --------------------------------------------------

主题2

-- --------------------------------------------------

-- Creating all tables 创建所有表

-- --------------------------------------------------

主题3

-- --------------------------------------------------

-- Creating all PRIMARY KEY constraints 创建所有主键约束

-- --------------------------------------------------

主题4

-- --------------------------------------------------

-- Creating all FOREIGN KEY constraints 创建所有外键约束

-- --------------------------------------------------

主题5

-- --------------------------------------------------

-- Script has ended 脚本已经结束

-- --------------------------------------------------

没有内容了

 

这么多的内容需要的只有主题3和主题4,把这两个内容放到数据库的新建查询中,新建一个数据库,选择到这个数据库点击执行,表格就创建好了。再把这个数据库重新导入一次VS就可以正常使用了。