首页 新闻 会员 周边 捐助

entity framework Codefirst 多对多,中间表怎么加字段

0
悬赏园豆:30 [已解决问题] 解决于 2014-09-18 15:07
比如人员和项目是多对多关系,中间表除了人员ID和项目ID之外,我还想加个自定义的字段,比如bit型的,表示人员在项目里是否为兼职,这个怎么加,召唤大神指点。
机智小鑫的主页 机智小鑫 | 初学一级 | 园豆:121
提问于:2014-09-18 11:50
< >
分享
最佳答案
0

我觉得可以在建立一个人员和项目的多对多的关系用来单独记录兼职人员

收获园豆:20
刘宏玺 | 专家六级 |园豆:14020 | 2014-09-18 12:02

项目里人员已经分为了五类。。。而现在是又要在这五类人里加上一个兼职属性。。。疯了。。。

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 12:17

@leeqx555: 主要是你说的问题我是理解的,但是我认为在多对多的表上面加字段好像就不能用多对多来实现了

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-18 12:20

@刘宏玺: 怎么说?

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 12:31

@leeqx555: 如果是按照你问题的描述那么解决问题就变成了两个一对多的关系了

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-18 13:03

@刘宏玺: 你的意思是把人员与项目的关系也弄成一个类,它与人员和项目都是一对多的关系?

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 13:35

@leeqx555: 对啊,不然实现不了啊

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-18 13:36

@刘宏玺: 这样很麻烦,要改很多。。。我再找找看吧

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 13:38

@leeqx555: 项目里人员已经分为了五类,也就是说有5个项目表?

那怎么不做一个项目人员表,然后在做5个具体的项目人员表来扩展项目人员表

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-18 13:42

@刘宏玺: 现在是项目表一张,人员表一张,项目人员表五张

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 13:46

@leeqx555: 那也不差在多加一张项目人员表!

刘宏玺 | 园豆:14020 (专家六级) | 2014-09-18 13:47

@刘宏玺:问题是“兼职”这个属性是在那五类人员下的,不是同级的属性,也就是说,一个人,他会兼具“某类”和“兼职”两种属性,如果单独再建一张表与那五类平级,虽然也可以实现,但在逻辑上很别扭,录入界面也不太好做。

机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 13:55
其他回答(3)
0

这个是不可控的,即便在Map的时候,实现了增加字段的目的,但你的这个字段怎么去操作数据内容呢?

最好的方案是EF能支持中间多对多实体功能,但很不幸,目前的EF是没有的。事实上,EF也就实现的简单的多对多,如果要实现复杂的多对多关系,EF可能处理起来也很麻烦的。

除此之外,在实际应用中,我们还需要实现多表之间的多对多关系,即A、B多对多AB又与C多对多形成ABC,是否有A\B\C直接多对多的ABC呢?

我也遇到这个问题,目前是放弃使用EF内置的多对多而使用多对多关系实体来达成目的。

参考:非简单多对多关系数据的删除问题

收获园豆:10
519740105 | 园豆:5810 (大侠五级) | 2014-09-18 12:33

纠结中。。。

支持(0) 反对(0) 机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 14:09

@leeqx555: 没有纠结,只能这样。本来就是的,既然非简单多对多,自然需要自定义实体,也就需要另行实现了。

只是,如果非简单多对多能实现自动删除就好了,如我提供的连接里问的一样,不能象简单多对多那样的删除,是非常郁闷的。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-09-18 14:17
0

http://www.cnblogs.com/rohelm/p/3963440.html看看这个,建立三个模型即可,这里是使用DBFrist演示的,但是思路是一样的

Halower | 园豆:1723 (小虾三级) | 2014-09-18 13:03

谢谢,我会拜读的

支持(0) 反对(0) 机智小鑫 | 园豆:121 (初学一级) | 2014-09-18 13:56
-3

code first 是浮云.

[秦时明月] | 园豆:738 (小虾三级) | 2014-09-18 13:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册