Linq接近有什么区别?谈谈缓存

时间:2014-08-24 21:43:18

标签: c# linq

我对以下查询的使用感到有些困惑(

此:

var query = from p in ctx.Persons
            where x.Flat.Building.Id == 1 && x.Archived == false
            select p;

而且:

var query = ctx.Persons.Where(x => x.Flat.Building.Id == 1 && x.Archived == false);

如果我对两个查询的结果进行了一些更改并尝试再次查询它们,那么第一个显示旧结果,但第二个没有?

This answer试图解释,但至少对我来说真是令人困惑。

修改 也许我的问题不像我预期的那么清楚,但我会尝试集中注意力。

我的确切问题是,如果我使用Query Sintax并对数据进行了一些更改,并再次查询它不会加载新数据。但是在This answer中,autor讨论了如果使用Fluent Sintax这种情况不会发生。

现在,这是我的问题,为什么会出现这种情况,为什么会出现这种情况,因为查询Sintax会出现这种情况,而不是使用Fluent sintax

1 个答案:

答案 0 :(得分:4)

第一个查询与第二个查询完全相同。它们之间的唯一区别是语法。在第一个中你有所谓的查询语法,在第二个中你有所谓的流利(或方法)语法。在第二个查询的第一步中,第一个查询将被编译。

有关此问题的详情,请查看here。正如在那里所说,

  

查询语法和方法语法在语义上相同