【发布时间】:2012-02-02 22:05:17
【问题描述】:
我在我的 SQL Server 2008 数据库中创建了一个名为 Orders 的表。此表的列包括 dateCreated 类型的 Date、CustomerId、InvoiceTypeId、InvoiceId 等。我还有 Invoice、Customer 和 InvoiceType 表。
我在我的数据库中创建了一个视图,将所有这些表连接在一起,只选择我感兴趣的几列。
在我的 MVC3 Visual Studio 项目中,我创建了一个 ADO.NET 实体数据模型来表示 db 视图。我还创建了一个非常简单的控制器。最后,我创建了一个带有 WebGrid 的剃刀视图来显示我的订单。它工作正常。
这种方法合理吗?
假设我现在希望向我的剃须刀页面添加可用于过滤 WebGrid 内容的开始日期和结束日期的功能,我该怎么做?
我猜有两种方法可以做到这一点。
将所有数据从 db 视图加载到实体模型中。然后过滤代码可能会添加到剃须刀代码中。每次更改过滤器时都不需要读取 db,因为所有数据都已在模型中。
向数据库视图添加一些额外的 sql 代码,例如 WHERE (dateCreated BETWEEN @StartDate AND @EndDate),然后在每次更改过滤器时从数据库中读取模型.如果 Orders 表中有大量记录并且我们通常只对查看最近一周或几天的记录感兴趣,这将是一件好事。这可能与 MVC3 方法有关吗?怎么办?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 razor ado.net ado.net-entity-data-model