在一个应用程序中,我让用户为合同定义“模板”,然后将该合同模板应用于多个客户。合同对象具有包含项目列表的属性 LineItems。我在两者之间定义了一对多的关系。合同也有 UserID 属性,但对于模板合同,它始终为 0。然后在用户完成合同创建后,他/她点击保存,我循环选择客户并创建合同模板的新实例,将 UserID 设置为对应的值。但实际情况是,LineItems 只存储一次,用于第一个合同。我尝试将 LineItems 从模板合同复制到新列表,然后将其分配给模板的每个新实例,但没有运气。
是否有设计模式可以实现类似的功能(使用子集合克隆 LINQ to SQL 实体)?
PS 我正在使用 CodeSmith 生成的 PLINQO 到 SQL 实体,并且 Contract 对象的 LineItems 属性是 System.Data.Linq.EntitySet 类型。