gpt4 book ai didi

c# - LINQ to SQL语句相似度?

转载 作者:行者123 更新时间:2023-11-30 23:30:54 24 4
gpt4 key购买 nike

我从 VS2015 中的 C# 中发现了一个有趣的 Linq to SQL 行为。

我有一个我读取的 SQL 表,我正在一个 win 表单上显示内容。然后我使用以下方法更新一行的描述:

dc.SubmitChanges();

如果我查看 SQL Server Management Studio,该值已更新。

现在,这两个陈述给了我不同的结果。有什么理由吗?

var x1 = dc.MyTable.Where(p => p.ID == 2).First().Description;
var x2 = dc.MyTable.Where(p => p.ID == 2).Select(x => x.Description).First();

x1 包含不正确的旧值,而 x2 包含正确的新值。

如果我关闭我的表单并重新打开它,那么 x1 和 x2 都包含正确的值。就好像这些值是以某种方式缓存的。

最佳答案

LINQ to SQL 的 DataContext 缓存所有对象,但只缓存整个实体。所以第一个查询从缓存中返回对象,但第二个查询与缓存没有共同之处,因为它不查询整个实体。第二个查询直接针对数据库调用。

您可以在上下文中使用“刷新”方法刷新缓存中的对象,或者您可以只创建新的上下文对象。

关于c# - LINQ to SQL语句相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809593/

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