我对以下查询的使用感到有些困惑(
)此:
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
答案 0 :(得分:4)
第一个查询与第二个查询完全相同。它们之间的唯一区别是语法。在第一个中你有所谓的查询语法,在第二个中你有所谓的流利(或方法)语法。在第二个查询的第一步中,第一个查询将被编译。
有关此问题的详情,请查看here。正如在那里所说,
查询语法和方法语法在语义上相同