我正在使用 Linq 创建 4 个对象集合:
var Restaurants = db.Places.Where(p => p.Tags.Any(t => t.Name == "Restaurant")).ToList();
var Bars = db.Places.Where(p => p.Tags.Any(t => t.Name == "Bar")).ToList();
var Pubs = db.Places.Where(p => p.Tags.Any(t => t.Name == "Pub")).ToList();
var Hotels = db.Places.Where(p => p.Tags.Any(t => t.Name == "Hotel")).ToList();
显然最好从数据库中读取一次,上面是否会在 SQL Server 2012 或 1 上打开 4 个连接和 4 个查询?
如果我改为执行以下操作,Entity Framework 是否只会从数据库中读取一次,我自己测试的最佳方法是什么?
var places = db.Places;
var Restaurants = places.Where(p => p.Tags.Any(t => t.Name == "Restaurant")).ToList();
var Bars = places.Where(p => p.Tags.Any(t => t.Name == "Bar")).ToList();
var Pubs = places.Where(p => p.Tags.Any(t => t.Name == "Pub")).ToList();
var Hotels = places.Where(p => p.Tags.Any(t => t.Name == "Hotel")).ToList();
这里的最佳实践是什么?有这方面的统计吗?
谢谢。