这个问题很简单,但我似乎无法从MSDN文档中得到明确答案。
我有一个映射到数据库中的表的对象列表。其中一些对象填充了ID
,有些则没有填充。我想使用像
myContext.myTable.AttachAll(myList);
现在,我希望具有ID的对象(数据库中的主键)将被附加并对这些行执行更新,而我的没有ID
的对象将是像INSERT一样处理,db会自动创建ID
。这是怎么回事?
答案 0 :(得分:1)
此方法将集合的所有实体附加到DataContext 处于修改或未修改状态。如果附加为修改, 实体必须声明版本成员或不必声明 参与更新冲突检查。如果附加为未修改, 假定该实体代表原始值。打电话后 这个方法,实体的字段可以用其他方法修改 调用SubmitChanges之前来自客户端的信息。更多 信息,请参阅N层中的数据检索和CUD操作 应用程序(LINQ to SQL)。
附加新实体时,任何子项的延迟加载器 集合(例如,来自的实体的EntitySet集合) 关联表)已初始化。调用SubmitChanges时 子集合的成员处于未修改状态。至 更新子集合的成员,您必须显式调用Attach 并指定该实体。