我正在使用带有SQL Server CE的EF5进行私有项目,我正在尝试更新相关记录。
我的两张桌子是:
Document 1-n DocumentFile
取首: - Id(1)
DocumentFile - DocumentId(n) - 姓名
现在我的问题: 我想更新一个文档条目的完整依赖列表(DocumentFile)。 F.E. - 文档(标识20)在DocumentFile-Table中有5个相关条目。 - 用户删除3个文件并再添加1个文件。
结果应该是:DocumentFile表中的3个相关条目(5-3 + 1)。
我尝试删除Collection并添加新条目,但EF不会自动删除旧条目。它只是将新列表添加到表中。
我真的需要删除每个依赖的documentfile-entry并添加新的集合吗?
感谢
答案 0 :(得分:0)
如果用户删除了3个文件,则可能是您拥有访问每个实体并调用 DeleteObject 的代码,导致3个实体处于Deleted状态。用户将添加一个文件,因此将使用 AddObject 创建其他实体,因此上下文将包含处于已添加状态的另一个条目。您还将有2个处于Unchanged状态的实体。在上下文中调用 SaveChanges 时,将生成相应的SQL,EF将管理您的更新。如果您遵循这些步骤,则不需要删除每个依赖的实体。