如何仅在数据发生变化时从数据库中提取?

时间:2015-07-06 14:11:08

标签: c# asp.net-mvc-4

我有一个使用C#/ MVC 4.5的汽车网站,我需要找到一种更加动态的方式来从数据库中提取数据。更具体地说,动态刷新数据。

到目前为止,我已经找到了两种提取数据的方法,但由于各种原因它们都是不可接受的:

Car.cs根据int参数从数据库中提取数据。

    // CarContorller.cs
    public class CarController : Controller
    {
        public static Car Car1 = new Car(1);
    }

    // FrontPage.cshtml
    @using CarSite.Models
    @{
        Car C = new Car(1);
    }
    <div class="car-name">
        Car Name From Model (Database): @C.Name
        Car Name From Controller (Memory): @CarSite.Controllers.CarController.Car1.Name <br>
    </div>

所以这就是我的困境:

  • 从模型中拉出会在每次加载网站时强制刷新数据。因此,如果我每天有3辆汽车和1000名访客,那么数据每天被拉3000次,即使它是一遍又一遍的相同数据。

  • 从控制器中拉出只允许拉一次数据,但如果更改,则在重置网站之前不会反映数据。

是否可以在控制器数据发生变化时刷新?如果是这样,这是如何实现的?如果没有,我该怎么做才能阻止这么多的数据拉动?

1 个答案:

答案 0 :(得分:1)

您正在寻找的是使用Sql依赖性缓存

有很多这方面的例子,我记得在我学习它时读到这个:

http://www.srikanthtechnologies.com/blog/dotnet/sqlcachedependency.aspx

我也发现了这篇SO帖子,你可能会发现它很有用:

How to use SqlCacheDependency?