Entity Framework 仅加载必需的数据
示例
在代码中经常看到的一个问题是加载所有数据。这将大大增加服务器上的负载。
假设我有一个名为“location”的模型,其中有10个字段,但并非所有字段都同时需要。假设我只想要该模型的“LocationName”参数。
不好的例子
var location = dbContext.Location.AsNoTracking()
.Where(l => l.Location.ID == location_ID)
.SingleOrDefault();
return location.Name;好的例子
var location = dbContext.Location
.Where(l => l.Location.ID == location_ID)
.Select(l => l.LocationName);
.SingleOrDefault();
return location;“好示例”中的代码将仅获取“LocationName”,而不会获取其他任何内容。
注意,由于在此示例中没有实体实现,AsNoTracking()因此没有必要。无论如何,没有什么可追踪的。
使用匿名类型获取更多字段
var location = dbContext.Location
.Where(l => l.Location.ID == location_ID)
.Select(l => new { Name = l.LocationName, Area =l.LocationArea})
.SingleOrDefault();
returnlocation.Name+ " 面积为 " + location.Area;与前面的示例相同,仅将从数据库中检索字段“LocationName”和“LocationArea”,“匿名类型”可以容纳任意数量的值。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短