我在 .NET 3.5 应用程序中使用 EF v1 和 Velocity 缓存。我的缓存对象是数据库中实体模型的表示。所以我决定将 EF v1 与 POCO 适配器一起使用。所以有一个实体访问层从缓存中读取对象,如果不存在,则从数据库中读取它并立即缓存它。现在在需要更新的用例中,需要在数据库中更新脏 POCO。现在我不能在这里直接使用 POCO 适配器和代理,因为它们需要一个跟踪更改的支持对象。我从未从框架中对适配器对象进行水合,因此不会发生更改检测。我看到的最简单的选择是:
- 更新前阅读实体。从 POCO 设置适配器值。让变更检测顺其自然。这会在每次更新之前进行选择,这可能会给许多关联实体带来高昂的代价。
- 创建一个新的实体对象。从 POCO 设置实体键和属性。保存更改。即使没有更改属性/关联实体,这也会进行不必要的写入。
我希望我在问题陈述中很清楚。请建议。