我觉得可以在建立一个人员和项目的多对多的关系用来单独记录兼职人员
项目里人员已经分为了五类。。。而现在是又要在这五类人里加上一个兼职属性。。。疯了。。。
@leeqx555: 主要是你说的问题我是理解的,但是我认为在多对多的表上面加字段好像就不能用多对多来实现了
@刘宏玺: 怎么说?
@leeqx555: 如果是按照你问题的描述那么解决问题就变成了两个一对多的关系了
@刘宏玺: 你的意思是把人员与项目的关系也弄成一个类,它与人员和项目都是一对多的关系?
@leeqx555: 对啊,不然实现不了啊
@刘宏玺: 这样很麻烦,要改很多。。。我再找找看吧
@leeqx555: 项目里人员已经分为了五类,也就是说有5个项目表?
那怎么不做一个项目人员表,然后在做5个具体的项目人员表来扩展项目人员表
@刘宏玺: 现在是项目表一张,人员表一张,项目人员表五张
@leeqx555: 那也不差在多加一张项目人员表!
@刘宏玺:问题是“兼职”这个属性是在那五类人员下的,不是同级的属性,也就是说,一个人,他会兼具“某类”和“兼职”两种属性,如果单独再建一张表与那五类平级,虽然也可以实现,但在逻辑上很别扭,录入界面也不太好做。
这个是不可控的,即便在Map的时候,实现了增加字段的目的,但你的这个字段怎么去操作数据内容呢?
最好的方案是EF能支持中间多对多实体功能,但很不幸,目前的EF是没有的。事实上,EF也就实现的简单的多对多,如果要实现复杂的多对多关系,EF可能处理起来也很麻烦的。
除此之外,在实际应用中,我们还需要实现多表之间的多对多关系,即A、B多对多AB又与C多对多形成ABC,是否有A\B\C直接多对多的ABC呢?
我也遇到这个问题,目前是放弃使用EF内置的多对多而使用多对多关系实体来达成目的。
纠结中。。。
@leeqx555: 没有纠结,只能这样。本来就是的,既然非简单多对多,自然需要自定义实体,也就需要另行实现了。
只是,如果非简单多对多能实现自动删除就好了,如我提供的连接里问的一样,不能象简单多对多那样的删除,是非常郁闷的。
code first 是浮云.