我在SQL Server 2008数据库中创建了一个名为Orders的表。此表的列包含dateCreated类型Date,CustomerId,InvoiceTypeId,InvoiceId等我也有发票,客户和InvoiceType表。使用MVC3和ADO.NET实体数据模型过滤数据
我已经创建了我的数据库查看,我所有这些表连接在一起,只选择了几列我感兴趣的
在我MVC3 Visual Studio项目我已经创建了一个ADO.NET实体数据模型来表示数据库视图。我还创建了一个非常简单的控制器。最后,我用WebGrid创建了一个剃须刀视图来显示我的订单。它工作正常。
这是一种合理的方法吗?
假设我现在想添加到我的剃须刀页面添加可用于过滤WebGrid内容的开始日期和结束日期的功能,我该怎么做?
我猜这样做有两种方法。
将所有数据从数据库视图加载到实体模型中。然后过滤代码可能会添加在剃刀代码中。由于所有数据都已存在于模型中,因此每次更改过滤器时都不需要读取数据库。
添加到数据库视图一些额外的SQL代码,像WHERE(dateCreated会BETWEEN @StartDate和@EndDate),然后有从DB每次我们改变滤波器时间读取模型。如果Orders表中有大量记录,那么这样做会很好,而且我们通常只对观看最后一周或几天感兴趣。这可能与MVC3方法有关吗?如何做呢?