gpt4 book ai didi

asp.net-mvc - 基于 View 模型属性的网格排序

转载 作者:行者123 更新时间:2023-12-02 05:04:11 27 4
gpt4 key购买 nike

我正在开发一个 ASP.NET MVC4 网络应用程序。它使用 Entity Framework 进行数据访问。许多页面包含网格。这些需要支持分页、排序、过滤和分组。为了性能,网格过滤、排序、分页等需要在数据库上进行(即 Entity Framework 需要生成合适的 SQL 查询)。一个复杂的问题是表示网格行的 View 模型是通过组合来自多个业务实体(表)的数据构建的。这可以简单地从实体中获取数据,或者根据相关业务实体的值计算数据。建议使用什么方法来处理这种情况?有谁知道网络上的一个很好的例子?大多数在 View 模型和业务领域模型之间有一个简单的映射。

28 月 11 日更新 - 进一步阐明网格的初始显示和分页效果良好。 (请参阅下面的评论)问题是当用户单击的列未直接映射到基础业务表上的列时,您如何处理排序/排序(和过滤)。我正在寻找一个通用的解决方案来实现这一点,因为系统将有大约 100 个网格,每个网格都有许多列,并且试图在每列的基础上处理这个问题将无法维护。

最佳答案

如果您希望能够对未在数据库中预先计算的计算字段进行排序或对其执行任何数据库操作,则您将必须预先计算该值并将其存储在数据库中。我对此一无所知。

唯一的其他解决方案是将分页和排序等移动到 Web 服务器,我相信您真的不想这样做,因为您必须计算所有值才能找到它们的顺序。

因此,如果您想实现您想要的 - 我认为您必须执行以下操作,但我很乐意听到其他解决方案:

数据库级别的变化:

  1. 为 View 模型中的每个计算字段添加一个可空列。

  2. 编写一个 SQL 脚本来计算这些值。

  3. 必要时将列设置为 Not Null

应用级别变化:

  1. 在您的添加和编辑页面中,您必须计算这些值并将它们与其余数据一起提交

您现在可以在数据库级别对这些进行查询,并根据需要使用 Queryable。

关于asp.net-mvc - 基于 View 模型属性的网格排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com