gpt4 book ai didi

linq-to-sql - 如何强制 Linq to SQL 不使用缓存?

转载 作者:行者123 更新时间:2023-12-04 11:18:10 24 4
gpt4 key购买 nike

当我两次进行相同的查询时,第二次它不会从数据库中返回新行(我猜它只是使用缓存)。

这是一个 Windows 窗体应用程序,我在应用程序启动时在其中创建 dataContext。

如何强制 Linq to SQL 不使用缓存?

这是我遇到问题的示例函数:

public IEnumerable<Orders> NewOrders()
{
return from order in dataContext.Orders
where order.Status == 1
select order;
}

最佳答案

最简单的方法是使用新的 DataContext - 考虑到上下文为您提供的大部分内容是缓存和身份管理,听起来您只是想要一个新的上下文。为什么你只想创造一个然后坚持下去?

顺便说一句,对于像您这样的简单查询,使用带有扩展方法而不是查询表达式的“普通”C# 更具可读性(IMO):

public IEnumerable<Orders> NewOrders()
{
return dataContext.Orders.Where(order => order.Status == 1);
}

编辑:如果您从不希望它跟踪更改,请设置 ObjectTrackingEnabled在你做任何事情之前先假。然而,这将严重限制它的实用性。您不能只是来回切换开关(在两者之间进行了查询)。更改您的设计以避免单例上下文会更好,IMO。

关于linq-to-sql - 如何强制 Linq to SQL 不使用缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/300402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com