自反关联用EA和codefirst得到的代码和数据库

第五元素 2022-9-29 14:49

1)这个自反关联表达各种商品可以组合成新的东西,或者就是商品本身(组合物体为0,部件为1),这样理解对吗?

2)“组合成”、“组合”是有区别的,组合物是集合体,也就是[组合物]由[部件][组合],这样的理解对吗?

UMLChina潘加宇

应该是对的

第五元素 2022-9-29 16:08

还有一个问题,使用这样的自反关联生成的代码是这样的,是不是不太对啊?应该有一个关联类才对吧?

1..*对0..*应该是与*对*是一样的才对,生成代码的时候。

生成代码是使用EA

以上代码是项目中的,结构与前面的问题是一样的。

UMLChina潘加宇

不需要(关联类),这不是数据库。

第五元素 2022-9-30 9:32

1、首先如果用EA来生成数据库模型,确实是增加了一个关联类。如下图所示:

好像不太对,这个并不能体现*。这跟具体实现技术有关系吗?

2、我使用EFCore的CodeFirst,生成的数据库中,并没有产生这样一个关联类,并且用它生成的表中,只是增加了一个Id,如下图:

我仔细检查过了,以上codefirst也没有产生其它关联类。

UMLChina潘加宇

代码加一行

List<....> 部件

应该就有了。

可以在图上把关联改成双向可导航的,EA重新生成代码;

也可以直接在原有代码上自己敲一行。

第五元素 2022-9-30 21:37

已经测试了,按照潘老师说的可以。

方法正确确实可以减少不少思考和编码的工作量,走了很多弯路了。大量的这种n:n,我都是手写的...


weixinpanjiayu2