如何仅在数据发生更改时从数据库中提取
本文关键字:数据库 提取 何仅 数据 | 更新日期: 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?