我在web应用程序后面使用memcache来最小化对SQL数据库的命中.我通过标记它们将C#对象存储到此缓存中SerializableAttribute.我们在应用程序中通过Ninject大量使用依赖注入.
其中一些对象很大,我想将它们分解.但是,它们来自单个存储过程调用(即一个存储过程调用被填充到完整的对象图中),并且我希望能够将这些对象分解并从缓存中单独延迟加载特定的子图而不是将整个对象图一次加载到内存中.
什么样的模式可以帮助我实现这一目标?
就模式而言,我认为从单个存储过程构建的一个大型复杂对象是可疑的。我不确定您的缓存是否是必需的,或者只是其实现的当前状态。
我习惯的模式是一种存储库模式,使用填充特定契约的操作。这些操作包含一个或多个数据源,这些数据源调用数据库中的存储过程,这些存储过程将用于构建您所说的子图之一。话虽如此,如果您要从数据库延迟加载数据,那么我只能假设许多对象成员大部分时间都没有使用,这进一步说明了我的观点 - 分解该对象。

关于它的一些事情:
更新:
使用缓存作为存储库,我可能会这样处理:

因此,基本上,您存储遗留对象,但在操作中,您使用它们来构建返回给客户端的更多相关 DTO。
| 归档时间: |
|
| 查看次数: |
1244 次 |
| 最近记录: |