没区别,同一个操作的2种写法而已
生成的语句如果不一样.那都能算bug了.
没什么区别.
建议打印出来生成的sql语句,对比看看。
还是有区别的,在复杂场景下面生成的SQL会不一致。比如下面关联关系,使用Where和使用Any查询结果会不一样,Where会生成连接语句,Any是Exists,如果要根据子条件进行查询,应该使用any
var ordersWithProducts = context.Orders
.Where(o => o.Products.Any(p => p.Price > 100))
.ToList();
var ordersWithProducts = context.Orders
.Where(o => o.Products.where(p => p.Price > 100))
.ToList();
至于EF Core为什么这么生成,生成逻辑是为什么,需要其他大神来解答了。