【发布时间】:2008-11-19 20:02:19
【问题描述】:
我在 SQL (A) 中有一个对象,它与另一个对象 (B) 具有多对多关系。我目前正在构建一个 API 层 DLL,它允许用户将 B 类型的对象分配给 A 类型。现在用户将使用不同的 LINQ 数据上下文检索 A 类型的条目列表和 B 类型的条目列表.问题是与 A 关联的数据上下文将与 B 关联的数据上下文中的任何对象视为新对象,并在我调用 SubmitChanges() 时尝试插入它们。有没有办法告诉数据上下文 A 这些对象已经存在并且不需要创建?我想写的代码看起来像这样(我将调用 A 服务和 B 输出):
List<Service> svcs = Service.GetServices();
List<Output> outs = Output.GetOutputs();
svcs[0].OutputCollection.Add(outs);
svcs[0].Save();
我的示例中的每个 Service 对象都有一个对从数据库中提取它的数据上下文的引用,并且 Save 函数调用 DataContext.SubmitChanges();上面的代码抛出异常,因为它试图将已经存在的输出添加回表中。
我知道这很长,但我不确定我是否很好地解释了我的问题。任何见解或建议都会有所帮助。
【问题讨论】: