繁体   English   中英

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

[英]Entity Framework model or viewmodel for listing data?

试想一下,如果我有一个包含20个字段的模型,现在有1000条记录, 但是我的数据库每天都在增长 ,那么我想在一个剃须刀页面中列出它们,并显示所有它们,但只需要5个字段。

我只想知道是否可以将包含所有字段的模型返回到视图并在视图中选择需要的字段,还是应该使用需要的字段创建viewModel呢? 我担心表现。

绝对创建一个视图模型以仅显示您需要的字段。 不要公开出于性能和安全性原因都不需要的任何字段。

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

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

对于像这样的小数字,这并不重要。 在性能方面,您不会发现太大的区别。 我也不会担心安全性。

我担心的是代码的组织。 您想将视图耦合到数据库模型吗? 如果您还可以,那就去做吧!

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

当您谈论显示更大的记录集时,那么您将需要一种显示它们的方法(例如,带有分页的某些网格...),我建议您考虑一直保持一个IQueryable。 有些产品可以使用IQueryable并提供对数据的分页,排序和搜索。

Grid.Mvc Telerik

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM