多实体组合问题
先决条件: 有ORM对单个实体持久化基类。
打比方先: 我们研发部门,依据经验总结,创建了 合同实体A, 合同物资实体B,这两个对象。 两者是父子关系。
按我以前做法,就是在 A 中,放置个 List 泛型容器, 把B 塞入进来,统一的做保存,就了事了。
但,现在领导发话了:
1: 我们研发中心提供的 A 和 B,都是毛坯。 很可能属性不够用。 换言之,A 和 B 都可能会被业务部门继承,甚至,业务部门还会独立创建C。
2: A 里面,放置 List 容器,就敲定了A 和 B 的关系,而这个关系是不牢靠的。应交由业务部门自己敲定去。
3: 也许,合同中,不仅需要A ,以及他儿子B ,甚至还需要新儿子C 和 同事D .
亦即 不同地方,合同所容纳的信息是千变万化的。 在A 实体中,绝对不能有任何其他实体的痕迹(外键也许可以网开一面)。
问题摆面上了,目前我的想法,就是再开辟个容器的概念。
比如: 一号客户,需要A ,B ,C 则
class PactForm:BaseForm
{
public A {get;set;}
public IList<B>;
public IList <C>;
}
二号客户,需要A,B,C,D,则
class PactForm:BaseForm
{
public A {get;set;}
public IList<B>;
public IList <C>;
public D {get;set;}
}
云云。。。。。。。。。。。。。。。。。。。。。。。。。。。。
PactForm 由图形化界面生成
则,每次增删改,直接对 Save( PactForm).
Save 时,反射遍历其内容,再逐个保存。
不知道这个解决方案,是否可行?
或者还有什么更好的方案么?
------解决方案--------------------采用集合加弱类型设计