用于列出数据的实体框架模型或视图模型

本文关键字:模型 框架 视图 实体 数据 用于 | 更新日期: 2023-09-27 18:22:25

想象一下,我有一个有20个字段的模型,现在我有1000条记录,但我的数据库每天都在增长,然后我想在剃刀页面中列出它们,并显示所有字段,但只需要5个字段。

我只是想知道,如果我将带有所有字段的模型返回到我的视图中,并在视图中选择我需要的字段,或者我应该用我只需要的字段创建一个viewModel,可以吗?我担心演出。

用于列出数据的实体框架模型或视图模型

一定要创建一个视图模型,只公开您需要的字段。不要公开出于性能和可能的安全原因不需要的任何字段。

当然,您可以在服务器端或客户端过滤数据。但最好的方法是在服务器端过滤数据,以尽可能减少服务器负载和网络流量。它还使您的应用程序响应速度更快,性能更好。使用IQueryable接口进行服务器端筛选(请查看此处了解更多信息)。

使用服务器端过滤的一个副作用是具有更好的安全性。

使用viewModel,您可以通过只传递页面上所需的字段来封装属性。当您使用大量字段时,是的,使用ViewModel可能会提高性能。通过使用ViewModal,您可以保持应用程序的整洁,并将所有逻辑分离。:)

对于这样的小数字,这其实并不重要。就性能而言,您不会看到太大差异。我也不会担心安全问题。

我担心的是您的代码的组织。是否要将视图与数据库模型相关联?如果你同意,那就去做吧!

编辑:我仍然认为是否返回模型的决定不应该基于潜在的性能命中,而应该基于您的代码组织。

当你谈论显示一组更大的记录时,你需要一种显示它们的方法(即一些带有分页的网格…),我建议你考虑一直保持IQueryable。有些产品可以采用IQueryable,并对您的数据进行分页、排序和搜索。

网格.MvcTelerik