读书人

多实体组合有关问题

发布时间: 2012-12-26 14:39:29 作者: rapoo

多实体组合问题
先决条件: 有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 时,反射遍历其内容,再逐个保存。

不知道这个解决方案,是否可行?

或者还有什么更好的方案么?
[解决办法]
采用集合加弱类型设计

读书人网 >.NET

热点推荐