基于一些有限的测试,我发现如果我
步骤2中的更改不会写回持久存储,因为我正在更改字典,而不是“托管对象”。这是正确的理解吗?
发布于 2015-11-30 21:01:46
很可能是在滥用字典结果类型。与传统的数据库编程不同,在获取整个对象时,您不会浪费宝贵的内存资源,而不仅仅是一个选定的属性,这是由于一种称为“故障”的底层机制造成的。
尝试使用托管对象结果类型(默认)获取,您可以非常容易地操作对象并将它们保存回Core数据。您不需要仅仅为了获得要更改的对象而执行额外的获取操作。
只有在数据量大、关系分组逻辑困难等特殊情况下才考虑字典,这就使得它成为绝对必要的。
(话虽如此,它不太可能是绝对必要的。我还没有遇到过这样一种情况,即需要为获取进行字典不是错误的数据模型设计的间接结果。)
发布于 2015-11-30 08:52:02
是的,某种程度上,您不能直接将字典存储回上下文中,因此无法以这种方式保存任何更新。
如果您获得了一个字典对象,那么您需要在其中包含关联的托管对象id (如果它不是聚合的),或者进行另一次获取以使对象更新。
https://stackoverflow.com/questions/33990438
复制相似问题