我们用相当大的数据库开发后台应用程序。将所有内容从数据库加载到内存是不合理的,因此当请求模型的属性时,我们从数据库(通过 EF)读取但我们的许多 UI 只是简单的实体列表,其中包含一些(!)属性呈现给用户。例如,我们只想显示 Id、Title 和 Name。稍后当用户选择项目并想要执行某些操作时,需要整个对象。现在我们有了存储在内存中的项目列表。某些属性包含大文本、图像或其他数据。EF 与实体一起工作,读取一堆大对象会显着降低性能。
据我了解,可以通过创建轻量级实体并在适当的上下文中使用它们来解决问题。
第一的。恐怕每个视图都会让我们创建新的 LightweightEntity,我们最终会以臃肿的对象上下文结束。
第二。由于模型包装了 EF,我们需要为各种实体提供方法。
第三。ViewModel 相互通信和传递实体。
所以我坚持所有这些考虑,需要好的建筑设计建议。有任何想法吗?