如何仅在数据发生更改时从数据库中提取

本文关键字:数据库 提取 何仅 数据 | 更新日期: 2023-09-27 18:01:09

我有一个使用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次,即使一遍又一遍都是相同的数据。

  • 从控制器中提取只允许提取一次数据,但如果数据发生变化,则在重置站点之前不会反映出来。

是否只有在控制器数据发生更改时才可以刷新该数据?如果是,这是如何实现的?如果没有,我该怎么做才能防止如此多的数据提取?

如何仅在数据发生更改时从数据库中提取

您想要的是使用Sql依赖项的缓存

这方面有很多例子,我记得我在学习的时候读过这篇文章:

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

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

如何使用SqlCacheDependency?