我有一个 MVC2 应用程序,我开始使用STE的。我正在寻找有关更新应该如何工作的一些说明。
背景:
如果我有一个带有相关类别实体和相关帖子/评论实体的博客实体。在 MVC 中,我使用主博客实体和类别而不是相关帖子呈现视图。当我将博客实体回发到服务器时,我可以看到相关类别,但看不到被序列化回服务器的实体中的帖子(因为它们不在视图中)。此外,博客实体的更改状态为“已添加”。
然后我尝试调用Applychanges()
并SaveChanges()
在此博客实体上执行更新,但由于与帖子的 FK 关系以及数据库中有相关帖子但未附加到我发回的实体这一事实而失败。
通过一些进一步的测试......如果我在连接到服务器(状态=未更改)时获取博客实体的当前实例(以及所有相关的 FK 实体),则修改属性(状态=已修改)并更新它按预期工作.
所以我的问题是: 如果我的相关实体没有在视图中呈现,因此没有与 Blog 实体一起回发,更新应该工作吗?
为什么博客实体以“已添加”状态而不是“已修改”状态返回帖子?我会假设它会返回所有已更改实体的“已修改”changestate,然后当我调用ApplyChanges/SaveChanges()
仅修改后的项目时会尝试更新,这就是我不需要所有相关实体的原因。
我应该能够直接从客户端传递实体,ApplyChanges()/SaveChanges()
还是应该将实体发回服务器,从数据库中获取现有副本,对该副本应用更改,然后将现有对象发回?